Я пытаюсь какое-то время, но не могу найти хорошее решение для оптимизации кода SQL ниже.Мой SQL-код имеет избыточную избыточность, но я не думаю о способе его оптимизации.
код работает так, как должен, но мой учитель говорит, что его можно оптимизировать, чтобы не использовать столько условий и что я злоупотребляю таблицами.
как я могу это оптимизировать? с внутренним соединением?
SELECT b.Namn AS Biograf,
s.Namn AS Salong,
fo.Starttid AS Starttid,
fi.Titel AS Film,
fi.Längd AS Längd,
(fi.Grundpris - fo.Prissänkning) AS Pris
FROM Biograf b,
Salong s,
Föreställning fo,
Film fi
WHERE b.BiografID = s.Biograf
AND s.SalongsID IN
(
SELECT Salong
FROM Föreställning
WHERE FöreställningID IN
(
SELECT FöreställningID
FROM Föreställning
WHERE (DATEDIFF('d',Starttid,'2014-11-23') = 0)
AND Salong IN
(
SELECT SalongsID
FROM Salong
WHERE Biograf IN
(
SELECT BiografID
FROM Biograf
WHERE Stad=2
)
)
)
)
AND fo.Salong = s.SalongsID
AND fo.FöreställningID
IN
(
SELECT FöreställningID
FROM Föreställning
WHERE (DATEDIFF('d',Starttid,'2014-11-23') = 0)
AND Salong IN
(
SELECT SalongsID
FROM Salong
WHERE Biograf IN
(
SELECT BiografID
FROM Biograf
WHERE Stad=2
)
)
)
AND fo.Film = fi.FilmID
Этот вопрос идеально подходит на http://codereview.stackexchange.com/ –
Можно ли начать с нуля? – Strawberry
Мой шведский плохой ;-) но у вас, кажется, есть столы кинотеатров, салонов (экранов?), Спектакли и фильмы. Итак, давайте начнем с этого. – Strawberry