2013-04-25 47 views
0

问候,并感谢您看我的question.I'm站在作为一个小白在这里:)我有3个表=>加入多个表与条件

First_Table 
First_Table_id |content 
---------- 
1 |aaa 
2 |bbb 
3 |ccc 
4 |ddd 

Second_Table 
Second_Table_id |First_Table_id 
---------- 
1 |1 
2 |2 
3 |3 
4 |4 

Third_Table 
Third_Table_id |First_Table_id 
---------- 
1 |1 
2 |2 
3 |3 

我的问题是,我需要证明从First_Table =>那漫天的ID内容Second_Table => First_Table_id但Third_Table =未填写> First_Table_id.I've想试试这个=>

SELECT * FROM First_Table 
LEFT JOIN Second_Table ON Second_Table.First_Table_id = First_Table.id 
LEFT JOIN Third_Table ON Third_Table_id WHERE Third_Table.First_Table_id != First_Table.id 

但该查询给我nothing.Is有另一种方式解决我的问题?谢谢:)

回答

0

使用子选择:

SELECT * FROM First_Table 
JOIN Second_Table ON First_Table.id = Second_Table.First_Table_id 
WHERE First_Table.id NOT IN (SELECT Third_Table.First_Table_id FROM Third_Table) 

PS:我用JOIN代替LEFT JOIN因为你说你从它出现在Second_Table

+0

为什么外国键First_Table想要的内容?为了效率? – Strawberry 2013-04-25 23:38:08

+0

@Vapire这实际上是我最近3天前寻找的家伙:)非常感谢您的帮助,并非常感谢:) – user2136356 2013-04-25 23:42:25

+0

欢迎!然后,你应该将答案标记为接受... – Vapire 2013-04-25 23:45:05