php - 仅当 id 存在于该表中时才从表中选择 mysql pdo php

标签 php mysql join pdo

我想在 3 个或更多表上使用联接来创建选择查询。我有 3 个表,即 t1t2t3 以及所有 3 个表中都存在的公共(public)列 id。如果 id 存在于表中,我想选择 3 表,我的查询如下。

Select * from t1 
inner join t2 on t1.id = t2.id 
inner join t3 on t2.id = t3.id 
where t1.id = 1 and t2.id = 1 and t3.id = 1

如果 id 存在于所有 3 个表中,则查询将返回值。但如果它不在任何表示例 t3 中,我将不会返回任何内容。我正在寻找一种方法,如果 t3 中不存在它,我应该继续从 t1t2

中进行选择

最佳答案

这是您需要的吗?

SELECT * 
FROM t1 
INNER JOIN t2 on t1.id = t2.id 
LEFT JOIN  t3 on t2.id = t3.id 
WHERE t1.id = 1 AND t2.id = 1 AND (t3.id = NULL OR t3.id = 1)

关于php - 仅当 id 存在于该表中时才从表中选择 mysql pdo php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30950498/

相关文章:

sql - 可以提取我正在寻找的数据的 MySQL 查询?

php - php中以小时、分钟和秒为单位的平均时间

php - 使用 jQuery 和 PHP/MySQL 表

当 ACTION 链接到另一个页面时,php、sql INSERT TO 不起作用

来自 3 个不同列的 Mysql 最大值

python - 将 Python 代码应用于 Sqlalchemy 过滤器

mysql - 雪豹: Fatal error: Call to undefined function mysql_connect()

php - 具有重复名称的 Codeigniter 路由中的正则表达式

sql - 加快查询速度,一张大表和一张小表的简单内部连接

mysql - 如何使用连接从 mysql 表中选择相同的列值作为不同的列?