2013-07-07 34 views
0

我不確定爲什麼這樣不起作用。如果我單獨加入任何一個表,它會返回適當的結果,但是當我嘗試將它們加入時,我會得到0個結果。 (car_id和boat_id是對他們的表都主鍵。)MySQL JOIN多張表格不能正常工作

$query = "SELECT 
      * 
     FROM    
      posted c 
      JOIN posted_car e on c.car_id = e.car_id 
      JOIN posted_boat g on c.boat_id = g.boat_id 
     WHERE 
      c.posted = 'posted' 
      ORDER BY date DESC LIMIT 0, 30"; 
     $resultBoth = mysql_query($query, $db) or die(mysql_error($db)); 

可能值得注意的是,當我做

LEFT JOIN posted_car e on c.car_id = e.car_id 
RIGHT JOIN posted_boat g on c.boat_id = g.boat_id 

我得到的結果是,如果我只參加了posted_boat表。如果任何人都可以指引我朝着正確的方向發展......那將會非常感激。

+0

@YotamOmer它是在MySQL中創建別名的簡寫。 @noWayhome我猜想'posting.car_id'和'posting.boat_id'不可能同時是非'NULL'。真的嗎? – pickypg

回答

2

您正在使用JOIN,這可能是一個問題。你應該使用左外連接來獲得正確的結果。檢查以下語法:

$query = "SELECT * 
    FROM    
     posted c 
     left OUTER JOIN posted_car e on c.car_id = e.car_id 
     left OUTER JOIN posted_boat g on c.boat_id = g.boat_id 
    WHERE c.posted = 'posted' 
     ORDER BY date DESC LIMIT 0, 30"; 
    $resultBoth = mysql_query($query, $db) or die(mysql_error($db)); 
+0

完美。謝謝:-) – noWayhome

+0

請不要忘記選擇此答案作爲有效答案,如果它可以幫助你。它可能會幫助其他人。 –