2013-03-06 3 views
0

Что лучше выбрать имена в два раза из таблицыSQL SELECT с теми же столами в два раза

NAME table 
Id Name 
1 john 
2 zoe 
3 joe 
4 abby 

COUPLE table 
NameId NameId2 
1  2 
3  4 

Результат должен выглядеть

Name Name 
john zoe 
joe abby 

Я хотел бы сделать что-то вроде этого

SELECT NAME.Name, NAME2.Name 
FROM COUPLE, NAME, NAME AS NAME2 
WHERE NAME.Id=COUPLE.NameId 
AND NAME2.Id=COUPLE.NameId2 

Это лучший способ получить результат? (Для исполнения)

+0

Если он работает, то, что вы действительно спрашиваете? Что должно быть «лучше»? Вы сталкиваетесь с проблемами производительности? –

+0

Похож на хороший вопрос о домашнем задании в Intro SQL. – jp2code

+0

Я использовал бы явный 'JOINS' вместо того, чтобы использовать не ANSI-стандарт для их сбрасывания в операторе' WHERE' – LittleBobbyTables

ответ

1

Моя самая большая рекомендация заключается в использовании явно присоединяется, а также сфера ваше второе имя в списке выбора

SELECT NAME.Name, NAME2.Name Name2 
FROM COUPLE 
INNER JOIN NAME ON NAME.Id=COUPLE.NameId 
INNER JOIN NAME AS NAME2 ON NAME2.Id=COUPLE.NameId2 
1
SELECT n1.Name, n2.Name 
FROM Couple C 
JOIN Name n1 ON (n1.id = c.nameID) 
JOIN Name n2 ON (n2.id = c.nameID2) 
Смежные вопросы