MySQL объединить две таблицы, чтобы получить записи - PullRequest
0 голосов
/ 12 января 2010

Хай, ребята,

У меня есть две таблицы Incharge и property . Моя таблица свойств имеет три поля 1stIncharge, 2ndIncharge и 3rdIncharge. InchargeId устанавливается в качестве внешнего ключа для всех вышеуказанных полей в таблице свойств.

Как написать оператор выбора, который объединяет обе таблицы ... Я пробовал немного, но безрезультатно

select P.Id,P.Name,P.1stIncharge,P.2ndIncharge,P.3rdIncharge,I.Id from 
Property as P join Incharge as I where (\\How to give condition here \\)

Ребята, 3 поля: P.1stIncharge, P.2ndIncharge, P.3rdIncharge, имеет внешний ключ I.Id

Edit:

select P.Id,P.Name,P.1stIncharge,P.2ndIncharge,P.3rdIncharge,I1.Id from 
Property as P 
inner join Incharge as I1 on I1.Id=P.1stIncharge 
inner join Incharge as I2 on I2.Id=P.2ndIncharge  
inner join Incharge as I3 on I3.Id=P.3rdIncharge

and this query working

Ответы [ 2 ]

0 голосов
/ 12 января 2010

Если имена таблиц и столбцов правильные, предоставленное решение выглядит нормально (я переформатировал его):

SELECT
  P.Id, P.Name, P.1stIncharge, P.2ndIncharge, P.3rdIncharge,
  I1.Id
FROM Property AS P
JOIN Incharge AS I1 ON ( I1.Id = P.1stIncharge )
JOIN Incharge AS I2 ON ( I2.Id = P.2ndIncharge )
JOIN Incharge AS I3 ON ( I3.Id = P.3rdIncharge )

Какую ошибку вы получаете?

0 голосов
/ 12 января 2010

Я не уверен относительно имен ваших внешних ключей из обеих таблиц, но я думаю, что вы ищете это:

SELECT P.Id, P.Name, P.1stIncharge, P.2ndIncharge, P.3rdIncharge, I.Id
FROM Property as P INNER JOIN Incharge as I ON P.InchargeId = I.Id
...