Опять про SQL
Nov. 30th, 2012 05:45 pmДорогие френды, извините, я опять про JOIN-ы. Все-таки одну штуку понять не могу: а я могу... вообще их не использовать?
Вот пример решения от моего преподавателя, использующий JOIN:
List the names of all women married to men named George Abbott:
SELECT first_name, last_name
FROM person
WHERE person_id IN
(SELECT DISTINCT wife_person_id
FROM marriage JOIN person
ON (husband_person_id = person_id)
WHERE first_name = 'George'
AND last_name = 'Abbott');
А вот мой, который мне засчитали без замечаний, но мне неясно чем JOIN лучше. Использует меньше ресурсов? Нагляднее?
SELECT `People.First_Name`, `People.Last_Name`
FROM `People`, `Marriage`
WHERE(`People.Person_ID`= `Marriage.wife_person_id` AND `Marriage.husband_person_ID` = (SELECT `Person_ID` FROM `People` WHERE `First_Name` = 'George' AND `Last_Name`='Abbott'));
Потому что пока я обхожусь без JOIN-ов, я их так и не научусь использовать :(
Вот пример решения от моего преподавателя, использующий JOIN:
List the names of all women married to men named George Abbott:
SELECT first_name, last_name
FROM person
WHERE person_id IN
(SELECT DISTINCT wife_person_id
FROM marriage JOIN person
ON (husband_person_id = person_id)
WHERE first_name = 'George'
AND last_name = 'Abbott');
А вот мой, который мне засчитали без замечаний, но мне неясно чем JOIN лучше. Использует меньше ресурсов? Нагляднее?
SELECT `People.First_Name`, `People.Last_Name`
FROM `People`, `Marriage`
WHERE(`People.Person_ID`= `Marriage.wife_person_id` AND `Marriage.husband_person_ID` = (SELECT `Person_ID` FROM `People` WHERE `First_Name` = 'George' AND `Last_Name`='Abbott'));
Потому что пока я обхожусь без JOIN-ов, я их так и не научусь использовать :(