假设我有这个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字段返回信息?
答案 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