1.背景
書面でのSQLクエリステートメント、およびフィールドがnullの場合、あなたの代わりに0を使用します。
2.ソリューション
CASEフィールドであるNOT NULL THEN ELSE 0 END値
または
別名としてIFNULL(フィールド、0)(省略可能)
3.例
別名としてIFNULL(フィールド、0)(省略可能)
SELECT pdme.tuid,pdme.role_id,pupv.nickname,pupv.photo_link,pdm.member_role,pdme.status,(IFNULL(pdmam.tuid,0)) armyTuid
FROM pm_donation_match_enroll pdme
LEFT JOIN pm_donation_member pdm
ON (pdme.donation_id = pdm.donation_id
AND pdme.role_id = pdm.member_id)
LEFT JOIN pm_user_profile_view pupv
ON pdme.role_id = pupv.role_id
LEFT JOIN pm_donation_match_army_member pdmam
ON pdme.role_id = pdmam.play_id
WHERE
pdme.donation_id = 221
AND pdme.donation_match_id = 686
AND pdme.status IN (1,2)
AND pdm.delete_flag = 0
フィールドの値がTHEN ELSE 0 END NULLでない場合
SELECT pdme.tuid,pdme.role_id,pupv.nickname,pupv.photo_link,pdm.member_role,pdme.status,(CASE WHEN pdmam.tuid IS NOT NULL THEN pdmam.tuid ELSE 0 END) armyTuid
FROM pm_donation_match_enroll pdme
LEFT JOIN pm_donation_member pdm
ON (pdme.donation_id = pdm.donation_id
AND pdme.role_id = pdm.member_id)
LEFT JOIN pm_user_profile_view pupv
ON pdme.role_id = pupv.role_id
LEFT JOIN pm_donation_match_army_member pdmam
ON pdme.role_id = pdmam.play_id
WHERE
pdme.donation_id = 221
AND pdme.donation_match_id = 686
AND pdme.status IN (1,2)
AND pdm.delete_flag = 0
4.完璧なソリューション
あなたがより良い方法を持っている場合は、小さなパートナーは、ああ、私にメッセージをお願いします!