我对SQL不太熟悉,但我需要从3个表中进行选择。
我可以去:
SELECT * FROM tbl1,tbl2,tbl3 WHERE ID = 3
但是tbl3有可能不有任何ID为3的行,并且有可能tbl1有几个。
tbl2应该只有一行。
我仍然希望获得其他表格中的行。
我该如何做到这一点?
提前感谢!
答案 0 :(得分:1)
这三个表如何相关?条件'WHERE ID = 3'有点模棱两可 - 所有三个表中都存在ID,并且您希望每个表中ID = 3的所有记录?
底线是您需要使用LEFT JOIN
将表连接在一起,但在不知道表格如何相关的情况下很难给出示例。
做出一些假设:
SELECT *
FROM tbl1
LEFT JOIN tbl2 ON tbl2.tbl1_id = tbl1.id
LEFT JOIN tbl3 ON tbl3.tbl1_id = tbl1.id
WHERE tbl1.id = 3;
答案 1 :(得分:0)
对每个表执行单独的查询,然后对这些查询进行行计数,然后使用结果
你可以做if elseif else语句来做你想做的事。