2016-02-19 113 views
1

我有2个表:结合两个具体的SQL语句

表F:

​​

表T:

Field T_ID 

我有一个F_ID,这样我就可以找到配对表T:

SELECT * FROM F INNER JOIN T ON F_T_ID = T_ID WHERE F_ID = x 

然后我就可以找到引用该表T的所有表F:

SELECT * FROM F WHERE F_T_ID = y 

我怎样才能做到这一点在一个SQL语句?

谢谢。

回答

0

如果第一次查询将永远只返回一个(或没有)行,那么你可以使用第一查询作为子查询:

SELECT * FROM F WHERE F_T_ID = 
    (SELECT F_T_ID FROM F INNER JOIN T ON F_T_ID = T_ID WHERE F_ID = x) 
+0

啊哈,一个“子查询或内部查询或嵌套查询”。我不知道这一点。谢谢你的答案,并请原谅我的SQL无知。 –

0

你的意思是所有的F公司是指同一个T作为你的F_ID ?这个怎么样:

SELECT F1.* 
    FROM F F1 
    JOIN T ON T.T_ID = F1.F_T_ID 
    JOIN F ON F.F_T_ID = T.T_ID 
     AND F.F_ID = x 

如果你不想包含原始的F,你可以补充一点:

WHERE F1.F_ID != x 
+0

啊,“子查询或内部查询或嵌套查询”。我不知道这一点。谢谢你的答案,并请原谅我的SQL无知。 –

+0

解决问题的方法很多。 – n8wrl