---
title: "Göra krånglig fråga enklare."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/71645-göra-krånglig-fråga-enklare"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "oJones"
published: "2003-03-20T13:24:42.000Z"
updated: "2003-03-20T15:34:47.000Z"
replies: 2
views: 220
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/71645-göra-krånglig-fråga-enklare"
---

# Göra krånglig fråga enklare.

## #1 — oJones, 2003-03-20T13:24Z

Hej!

Jag har en fråga om hur jag ska kunna skriva om följande fråga så den inte blir så lång och tar sådan tid att få färdig.
Just nu tar den 10-20 sekunder innan den kan presentera mitt svar.

SQL =   "SELECT DISTINCT  movie.title, movie.Movie_Id, movie.number, director.director, actor.actor " & \_
	"FROM movie, director, director_movie, actor " & \_
	"WHERE " & \_
	
	"movie.title like '%" & Request.Querystring("searchword") & "%' " &\_
	"AND director.director_id = director_movie.director_id " & \_
	"AND movie.movie_id = director_movie.movie_id " & \_
	
	"OR movie.number like '%" & Request.Querystring("searchword") & "%' " &\_
	"AND director.director_id = director_movie.director_id " & \_
	"AND movie.movie_id = director_movie.movie_id " & \_

	"OR director.director like '%" & Request.Querystring("searchword") & "%' " &\_
	"AND director.director_id = director_movie.director_id " & \_
	"AND movie.movie_id = director_movie.movie_id " & \_
	
	"OR actor.actor like '%" & Request.Querystring("searchword") & "%' " &\_
	"AND director.director_id = director_movie.director_id " & \_
	"AND movie.movie_id = director_movie.movie_id " & \_
	
	"GROUP BY movie.title ORDER BY movie.title " & Request.Querystring("sort2")

Finns det något smidigare sätt?

Permalänk: https://www.webforum.nu/p/71645

## #2 — aasah, 2003-03-20T13:47Z

Re: Göra krånglig fråga enklare.

> **oJones skrev:**
>
> ...SQL =   "SELECT DISTINCT  movie.title, movie.Movie_Id, movie.number, director.director, actor.actor " & \_
> 	"FROM movie, director, director_movie, actor " & \_
> 	"WHERE " & \_
> 	
> 	"movie.title like '%" & Request.Querystring("searchword") & "%' " &\_
> 	"AND director.director_id = director_movie.director_id " & \_
> 	"AND movie.movie_id = director_movie.movie_id " & \_
> 	
> 	"OR movie.number like '%" & Request.Querystring("searchword") & "%' " &\_
> 	"AND director.director_id = director_movie.director_id " & \_
> 	"AND movie.movie_id = director_movie.movie_id " & \_
> 
> 	"OR director.director like '%" & Request.Querystring("searchword") & "%' " &\_
> 	"AND director.director_id = director_movie.director_id " & \_
> 	"AND movie.movie_id = director_movie.movie_id " & \_
> 	
> 	"OR actor.actor like '%" & Request.Querystring("searchword") & "%' " &\_
> 	"AND director.director_id = director_movie.director_id " & \_
> 	"AND movie.movie_id = director_movie.movie_id " & \_
> 	
> 	"GROUP BY movie.title ORDER BY movie.title " & Request.Querystring("sort2")
> ..

Säkert idiotisk fråga, men varför upprepar du samma villkor om och om igen? Behövs det i MySQL? Borde du inte kunna skriva:

SQL =   "SELECT DISTINCT  movie.title, movie.Movie_Id, movie.number, director.director, actor.actor " & \_
	"FROM movie, director, director_movie, actor " & \_
	"WHERE " & \_
	"director.director_id = director_movie.director_id " & \_
	"AND movie.movie_id = director_movie.movie_id " & \_
	"AND (
	"movie.title like '%" & Request.Querystring("searchword") & "%' " &\_
	"OR director.director like '%" & Request.Querystring("searchword") & "%' " &\_
	"OR actor.actor like '%" & Request.Querystring("searchword") & "%' )" &\_
	"GROUP BY movie.title ORDER BY movie.title " & Request.Querystring("sort2")

Är ingen hejare på MySQL så ovanstående behöver inte alls funka, jag kan bara inte begripa hur MySQL kan veta hur den ska tolka prioriteringen mellan alla dina AND och OR...?

Permalänk: https://www.webforum.nu/p/984459

## #3 — oJones, 2003-03-20T15:34Z

Du har helt rätt =)

Jag gjorde lite justeringar så blev det dessutom ännu mer rätt:

SQL2 = "SELECT DISTINCT movie.title, movie.Movie_Id, movie.number, director.director, actor.actor " & \_ 
	"FROM movie, director, director_movie, actor " & \_ 
	"WHERE " & \_ 
	"director.director_id = director_movie.director_id " & \_ 
	"AND movie.movie_id = director_movie.movie_id " & \_ 
	"AND actor.actor_id = movie.movie_id " & \_
	"AND ( " & \_
	"movie.title like '%" & Request.Querystring("searchword") & "%' " &\_ 
	"OR director.director like '%" & Request.Querystring("searchword") & "%' " &\_ 
	"OR actor.actor like '%" & Request.Querystring("searchword") & "%' )" &\_ 
	"GROUP BY movie.title ORDER BY movie.title " & Request.Querystring("sort2") 

Tack för hjälpen!

Permalänk: https://www.webforum.nu/p/984537

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/71645-göra-krånglig-fråga-enklare
