如果表2中没有结果,则Mysql返回结果

时间:2013-01-05 16:27:54

标签: php mysql null return

假设我有这个SQL行:

SELECT (something) 
FROM user_data, user_profile_image 
WHERE user_data.user_id='6' (AND user_profile_image.user_id='6')

如果user_profile_image中没有包含与该用户相关的数据,如何确保它从user_data字段返回信息?

3 个答案:

答案 0 :(得分:1)

您需要使用JOIN

SELECT u.*,i.user_profile_image FROM user_data u LEFT JOIN `USER_PROFILE_IMAGE_TABLE` i ON i.user_id=u.user_id WHERE u.user_id='6'

我不确定您的USER_PROFILE_IMAGE_TABLE是什么,所以您需要更改它。

答案 1 :(得分:1)

SELECT something
FROM user_data
LEFT JOIN user_profile_image
ON user_profile_image.user_id = user_data.user_id
WHERE user_data.user_id = '6'
AND user_profile_image.user_id IS NULL;

您希望LEFT JOIN外键字段上的详细信息页面等于第一个表的主键字段,并从第一个表中选择行,以便第二个表中没有匹配的行

在您提供的查询中,没有加入条件,因此它将是笛卡尔积 - user_data的每一行都与user_profile_image的每一行合并。

答案 2 :(得分:0)

试试这个:

SELECT u.user_id, u.user_name, IFNULL(up.user_id, 'No Data In user_profile_image') UserId, 
       IFNULL(up.user_image_id, 'No Data In user_profile_image') user_image_id
FROM user_data u 
LEFT JOIN user_profile_image up ON u.user_id = up.user_id 
WHERE u.user_id = 6;

点击此链接SQL FIDDLE DEMO