mysql
2014-08-30 157 views 0 likes 
0

我的sql查詢有問題。加入mysql查詢結果問題

爲什麼我的sql數據庫查詢顯示一條記錄兩次? 我正在使用JOIN和我正在使用此查詢與user表& user_inbox表。

$sql_alt = mysql_query(
"select i.*,u.images, u.firstname, u.lastname 
     from user_inbox i, user u 
     where i.to_id = '$user_id'"); 
+2

在您的代碼中看不到任何JOIN。 – 2014-08-30 05:36:21

回答

2

在查詢你正在做CROSS JOIN和你的願望,恐怕是INNER JOIN

在MySQL中,CROSS JOIN的行爲類似於JOININNER JOIN,沒有使用任何條件。 CROSS JOIN返回所有行的形式user乘以user_inbox的所有行 - 對於每個用戶,您將獲得所有用戶的收件箱。

您應該爲您的JOIN聲明指定條件。

$sql_alt = mysql_query(
    "select i.*,u.images, u.firstname, u.lastname 
     from user_inbox i INNER JOIN user u ON i.to_id = u.user_id 
     where i.to_id = '$user_id'"); 

而且是良好的習慣對主鍵和外鍵相同的名稱,所以我想你應該有user_iduser_id_to代替to_iduser_inbox表。這當然不是絕對必要的。

相關問題