php - MYSQL Join 语句 - 可选表?

标签 php mysql join

好吧,我会尽力让这变得有意义,哈哈。基本上我有 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/

相关文章:

php - 面向对象设计问题

javascript - 如何获取多个选择框的值并将结果显示在文本框中?

sql - 选择子子项中的最新记录

php - 分组重复值

MySQL join 从单元格中的外表名称中选择

PHP 文件上传不起作用,注意输出到浏览器

php - Laravel Passport - 通过客户端 ID 获取客户端密码

mysql - 根据mysql中的courseid获取特定列的计数

mysql - 按父 ID 删除 SQL 树

PHP MYSQL 博客存档菜单按年和月