Объединить три таблицы в SQL - PullRequest
2 голосов
/ 09 ноября 2011

Как присоединиться к SQL, если я хочу знать, какому «Манну» принадлежит, какой «фрау»?

Результат должен выглядеть следующим образом:

FrauX "id" | MannX "id"
FrauY "id" | MannY "id" 

http://i.stack.imgur.com/Cv8NM.png

Ответы [ 2 ]

3 голосов
/ 09 ноября 2011

Ниже приведено объединение, вы можете выбрать столбцы, необходимые для вашего запроса

SELECT m.idMann
   , m.Name AS MannName
   , f.idFrau 
   , f.Name AS FrauName
FROM Mann AS m
INNER JOIN Frau_has_Mann AS fm ON m.idMann = fm.Mann_idMann
INNER JOIN Frau AS f ON fm.Frau_idFrau = f.idFrau

Похоже, что псевдонимы могут вызывать проблемы, попробуйте:

SELECT Mann.idMann
   , Mann.Name AS MannName
   , Frau.idFrau 
   , Frau.Name AS FrauName
FROM Mann
INNER JOIN Frau_has_Mann ON Mann.idMann = Frau_has_Mann.Mann_idMann
INNER JOIN Frau ON Frau_has_Mann.Frau_idFrau = Frau.idFrau

в основном удаление псевдонимов для всего имени столбца.

0 голосов
/ 09 ноября 2011
Select F.idFrau,M.idMann FROM Frau AS F INNER JOIN Frau_has_Mann AS FHM ON FHM.Frau_idFrau = F.idFrau INNER JOIN Mann AS M ON M.idMann = FHM.Mann_idMann

Надеюсь, это то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...