查询连接返回两个值,即使查询语句只存在一个值

时间:2013-03-22 12:39:29

标签: mysql join exists

我正在查询数据库,我需要它来返回所有值。我正在加入两个表 storage_path 用户第一个用户存在于第一个和第二个表中的user_id字段。表storage_path中不存在第二个用户,但我还需要通过查询返回的用户!

我怎样才能做到这一点?

以下是更清楚的查询...

此查询在while循环切换user_id变量

$item_id = $row['user_id']; 

$sql = "SELECT MAX(sf.file_id) as file_id, sf.storage_path as image, u.photo_id 
FROM engine4_users u 
LEFT JOIN engine4_storage_files sf
    ON sf.user_id = u.user_id 
WHERE sf.type = 'thumb.icon' AND u.user_id = $item_id";

1 个答案:

答案 0 :(得分:0)

查询中的问题看起来与您使用MAX选择字段但未提供GROUP BY字段这一事实有关。

试试这个:

$sql = "SELECT MAX(sf.file_id) as file_id, sf.storage_path as image, u.photo_id 
FROM engine4_users u 
LEFT JOIN engine4_storage_files sf
    ON sf.user_id = u.user_id 
WHERE sf.type = 'thumb.icon' AND u.user_id = $item_id
GROUP BY u.user_id";