2010-01-12 29 views
0

海家伙,MySQL的加入两个表来获取记录

我有两个表Incharge财产。我的物业表有三个字段1stIncharge,2ndIncharge和3rdIncharge。 InchargeId被设置为在属性表中的所有上述领域外键..

如何编写连接两个表中的select语句。我已经尽力了一点,但没有结果

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

编辑:

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 
+0

@Saranya:如果Codesleuth的解决方案不是您想要的,请考虑编辑您的问题并提供有关预期结果的示例数据。 – 2010-01-12 12:17:34

回答

0

我不知道关于这两个表的外键的名字,但我认为你正在寻找这样的:

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 
+0

@Codesleuth 3字段P.1stIncharge,P.2ndIncharge,P.3rdIncharge具有外键I.Id – Saranya 2010-01-12 12:02:36

+0

@Codesleuth没有字段名为P.InchargeId – Saranya 2010-01-12 12:03:36

+0

对不起,但您的问题有点含糊。我很高兴你对它进行了排序。 – Codesleuth 2010-01-12 13:21:05

0

如果你的表和列名是正确的,你提供的解决方案看起来不错(我重新格式化它):

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) 

你会得到什么样的错误?