将sql语句组合为单个语句


Combining sql statements into single statement

我有4个表,比如A、B、C、D。

"D"有两列"id"answers"Cid"

"C"有两列"id"answers"Bid"

"B"有两列"id"answers"Aid"

如果我想得到"Cid",我做"SELECT Cid FROM D where id = value which I enter"

如果我想得到"出价",我做"SELECT Bid from C where id = result of Cid from above query"

如果我想得到"援助",我会做"SELECT Aid from B where id =result is Bid from above query"

正如您所看到的,这些表是相互关联的。

如何通过组合上述SQL语句直接获得"Aid";如何在单个SQL语句中获得"Aid"?

尝试

    select tb.Aid
      from D td
inner join C tc ON ( tc.id = td.Cid )
inner join B tb ON ( tb.id = tc.Bid )
     where d.id = :value
         ;

首先使其成为一个表。

然后阅读从mysql 检索分层数据的方法

当您开始使用JOIN:时,您的关系结构会变得很有用

SELECT A.id
FROM D
JOIN C ON D.Cid = C.id
JOIN B on C.Bid = B.id
JOIN A on B.Aid = A.id
WHERE D.id = 'foo';