没有结果表比方说,我有这样的SQL行:Mysql的返回结果,如果2
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场信息该用户?
没有结果表比方说,我有这样的SQL行:Mysql的返回结果,如果2
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场信息该用户?
您需要使用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是什么,所以你需要改变这种状况。
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
合并。
试试这个:
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
可能与左连接? – vodich