PHP MYSQL SELECT 即使有些是空的

Posted

技术标签:

【中文标题】PHP MYSQL SELECT 即使有些是空的【英文标题】:PHP MYSQL SELECT even if some are empty 【发布时间】:2011-09-06 23:01:17 【问题描述】:

我对SQL不太熟悉,但需要从3个表中选择。

我可以走了:

SELECT * FROM tbl1, tbl2, tbl3 WHERE ID=3

但是 tbl3 有可能没有有任何 ID 为 3 的行,并且可能 tbl1 有一些。

tbl2 应该只有一行。

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

我怎样才能做到这一点?

先谢谢了!

【问题讨论】:

表结构是什么?表之间有什么关系吗? 【参考方案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;

【讨论】:

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

对每个表进行单独查询,然后对这些查询进行行计数,然后计算结果 你可以做 if elseif else 语句来做你想做的事情。

【讨论】:

以上是关于PHP MYSQL SELECT 即使有些是空的的主要内容,如果未能解决你的问题,请参考以下文章

php` $ _SERVER ['PHP_SELF']`是空的

即使查询数据,DefaultTableModel 也是空的

即使设置了项目,调用时反应 useState 项目似乎是空的

如何在 gRPC 响应中打印所有 protobuf 字段,即使是空的

Swift - 即使在填充数据后数组似乎也是空的

tableView beginUpdates / endUpdates 阻止重新加载整个表,即使是空的