簡體   English   中英

MYSQL加入聲明 - 可選表?

[英]MYSQL Join Statement - Optional Tables?

好的,我會盡力使這個有意義lol。 基本上我有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語句的新手,所以如果我能做些改進,請告訴我!

謝謝你的時間和幫助!!!!!

您需要做的就是在加入任務的連接之前添加left outer 即使沒有任務,這也可以為您提供項目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM