php - MySQL : possible to put IF statment in LEFT JOIN?

标签 php mysql

好的,所以我想从数据库中获取艺术家信息,但我想知道他们是否有任何即将举行的事件。为此,我需要遍历 2 个表,其中 events_artists 是一个 2 col 链接表...

(这行不通,但我喜欢这样做)

SELECT art.*, events.event_id FROM art 
LEFT JOIN events_artists
ON art.art_id = events_artists.art_id
LEFT JOIN events
ON events_artists.event_id = events.event_id IF ( {criteria} )  

我应该在这里做什么才能让它工作?!!

最佳答案

您可以使用 AND 关键字来指定连接的附加条件。

SELECT art.*, events.event_id FROM art 
LEFT JOIN events_artists
ON art.art_id = events_artists.art_id
LEFT JOIN events
ON events_artists.event_id = events.event_id AND ( {criteria} )  

如有必要,如果您需要查询其他数据,您还可以使用子查询,例如 AND EXISTS (SELECT * FROM tbl)

关于php - MySQL : possible to put IF statment in LEFT JOIN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2790380/

相关文章:

php - 将 MYSQL 脚本转换为 PDO

php - 以 PHP 存储价格。什么是更好的双或字符串?

javascript - 如何在Vue中获取不是来自DB的数组索引

javascript - 如何在不使用 include() 的情况下从不同的 PHP 脚本访问变量

mysql - Airflow:Celery worker MySQL 连接过多

php - 获取刚刚用mysql准备好的语句添加的记录ID

php - 从 PHP 数组创建 Javascript 数组

php - 如何在 magento 结帐过程之前设置自定义总计?

mysql - 比较来自同一表和列的两组数据,而无需在 MySQL 中两次调用表

java - 使用prepare语句进行动态Sql查询