好吧,我会尽力让这变得有意义,哈哈。基本上我有 4 个不同的表,我试图连接而不是执行一些单独的 SQL 语句,因为 MYSQL 引擎应该能够比我更好地优化它。
基本上我有这 4 个表:
projects (key:id)
project_users (key:project_id , user_id)
users (key:id)
tasks (key:project_id)
这是我的查询:
SELECT projects.*, users.*, tasks.*,
FROM
projects JOIN ( project_users JOIN
users ON
project_users.user = users.id )
ON projects.id = project_users.project_id
JOIN ( tasks )
ON projects.id = tasks.project_id
WHERE projects.company = 2 ORDER BY projects.id
基本上,我试图获取某个公司的项目、该项目中的用户以及该项目中的任务的列表。
问题 - 如果此项目中没有任务,则不会返回该项目。我仍然需要该项目,只是该项目有 0 个任务。
我是 JOIN 语句的新手,因此如果我可以做一些改进,请告诉我!
感谢您的时间和帮助!!!!
最佳答案
您所需要做的就是在连接任务的连接之前添加 leftouter
。即使没有任务,这也会为您提供项目。
关于php - MYSQL Join 语句 - 可选表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8101942/