组合两个特定的SQL语句

组合两个特定的SQL语句,sql,Sql,我有两张桌子: 表F: Field F_ID Field F_T_ID (foreign key) Field T_ID 表T: Field F_ID Field F_T_ID (foreign key) 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_I

我有两张桌子:

表F:

Field F_ID

Field F_T_ID (foreign key)
Field T_ID
表T:

Field F_ID

Field F_T_ID (foreign key)
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语句中实现这一点


谢谢。

如果第一个查询只返回一行(或没有),那么您可以将第一个查询用作子查询:

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)

如果第一个查询只返回一行(或不返回),则可以将第一个查询用作子查询:

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)

你是说所有的F都和你的F_ID指同一个T?这个怎么样:

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

你是说所有的F都和你的F_ID指同一个T?这个怎么样:

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
“子查询、内部查询或嵌套查询”。我不知道这件事。谢谢你们的回答,请原谅我对SQL的无知。啊,“子查询、内部查询或嵌套查询”。我不知道这件事。谢谢你们的回答,请原谅我对SQL的无知。啊,“子查询、内部查询或嵌套查询”。我不知道这件事。谢谢你们的回答,请原谅我对SQL的无知。啊,“子查询、内部查询或嵌套查询”。我不知道这件事。谢谢你们的回答,请原谅我的无知。