2014-04-11 34 views
0

我想写一个SQL语句:SQL加入使用多个表where子句

Select * FROM table1 
inner join table2 AS t2 
    ON 
inner join table3 AS t3 
    ON 
inner join table4 AS t4 
    ON 
Where FK_Client_ID = 4 

所有的表,客户端ID共同点。所以不知道在ON上该做什么。

它会像ON t2.FK_Client_ID = ......不确定。

所以我只想从这些具有FK_Client_ID的表中获取共同的数据。

回答

0
Select *, 
    (Select FK_Client_ID from table2 where FK_Client_ID = t1.FK_Client_ID )As TID1, 
    (Select FK_Client_ID from table3 where FK_Client_ID = t1.FK_Client_ID )As TID2, 
    (Select FK_Client_ID from table4 where FK_Client_ID = t1.FK_Client_ID )As TID3 
FROM table1 t1 
0

试试这个

Select * FROM table1 t1 
inner join table2 AS t2 
    ON t2.FK_Client_ID = t1.FK_Client_ID 
inner join table3 AS t3 
    ON t3.FK_Client_ID = t1.FK_Client_ID 
inner join table4 AS t4 
    ON t4.FK_Client_ID = t1.FK_Client_ID 
Where t1.FK_Client_ID = 4 
0

如果你的洋场的名字是"FK_Client_ID"和table1的主键是"Client_ID"

Select * FROM table1 
inner join table2 AS t2 
    ON t2.FK_Client_ID = table1.Client_ID 
inner join table3 AS t3 
    ON t3.FK_Client_ID = table1.Client_ID 
inner join table4 AS t4 
    ON t4.FK_Client_ID = table1.Client_ID 
Where table1.Client_ID = 4 

由于您使用的内部连接,无论你用table1或其他任何加入他们他们的

+0

以上查询将导致不明确的列名称'FK_Client_ID'。 – Kaleel

+0

@Kaleel我编辑了我的答案 – RezaRahmati

+0

您已经在table1中提到了主键列'Client_ID',因此'where'条件应该是table1.Client_ID或其他表的别名(t2或t3或t4).FK_Client_ID – Kaleel

0
Select * FROM table1 t1 inner join table2 t2 
    ON t1.FK_Client_ID = t2.FK_Client_ID 
     inner join table3 t3 
    ON t1.FK_Client_ID = t3.FK_Client_ID 
     inner join table4 t4 
    ON t1.FK_Client_ID = t4.FK_Client_ID 
Where t1.FK_Client_ID = 4