沒有結果表比方說,我有這樣的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