2016-08-23 90 views
0

這實際上是一個MeekroDB獨佔問​​題,只是試圖將我的頭圍繞Left_Join。MySQL左連接(使用MeekroDB)

我有2個表:comp_checklis噸和comp_checklist_items

我想從comp_checklist得到所有行,其中用戶ID相匹配,這工作得很好:

DB::query("SELECT * FROM comp_checklist WHERE user_id = %i", $user_id);

現在我的魔杖獲得相同的查詢(comp_checklist中用戶標識匹配的所有行),並添加任何comp_checklist_items行,其中checklist_id在兩個表中匹配(checklist_id是中的主鍵3210表)。我下面使用,但只得到false

DB::query("SELECT * FROM comp_checklist WHERE user_id = %i LEFT JOIN comp_checklist_items on checklist_id = comp_checklist.checklist_id", $user_id);

回答

0

JOIN應該來之前WHERE,和所有列應該有表名,否則你會得到一個錯誤:

DB::query("SELECT * FROM comp_checklist 
      LEFT JOIN comp_checklist_items 
      ON comp_checklist_items.checklist_id = comp_checklist.checklist_id 
      WHERE comp_checklist.user_id = %i ", $user_id); 
+0

了你,那工作,但在我打算採用不同的方式。基本上它返回兩次清單A,一次爲每個項目而不是檢查清單A一次與另一個數組關聯(嵌套)到它的項目 – Packy

+0

@Packy例如,如果要獲取所有具有user_id = 3的行,並且有兩行在此清單的comp_checklist_items中,您將得到兩個結果。如果您想獲得其他內容,請發佈一些樣本數據和您期望的結果集樣本。 – Galz