2011-09-06 31 views
1

我不太熟悉SQL,但我需要从3个表中选择。PHP MYSQL SELECT即使有些是空的

我可以去:

SELECT * FROM TBL1,TBL2,TBL3 WHERE ID = 3

但有一个机会,TBL3是不有任何行ID为3 ,而且有可能是tbl1有一些。

tbl2应该只有一行。

我仍然想获得其他表中的行。

我该如何做到这一点?

非常感谢!

+2

有什么表结构?表格之间有任何关系吗? – 2011-09-06 23:12:52

回答

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; 
+0

好吧,所有这三个表都有一个名为b_ID的行,table1可能有0个或多个b_ID = 3的实例,而table3可能根本没有。从我在这里读到的:http://www.w3schools.com/sql/sql_join_left.asp这是答案,谢谢 – Ted

0

对每个表执行单独查询,然后对这些查询进行一次计数,然后用结果
如果elseif else语句要做wat你可以做。