mysql
2014-08-30 110 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表。这当然不是绝对必要的。

相关问题