1

以下のSQLステートメントがあります。私がやりたいのは、列の 1 つが 0 または空白の結果を返す可能性をカバーする IF ステートメントを含めることです。0 の ID はありません。magez_cfv_nationsこの場合、結果がゼロまたは空白の結果を返す可能性をカバーしようとしています。

SELECT c.clan_name, n.nation_name, 
    CONCAT(r.rarity_shorthand, " - ", r.rarity_name) AS rarity_text, 
    t.trigger_name, s.skill_name
 FROM `magez_cfv_cards` AS cards
 JOIN `magez_cfv_clans` c ON cards.clan_id = c.clan_id
 JOIN `magez_cfv_nations` n ON cards.nation_id = n.nation_id
 JOIN `magez_cfv_rarity` r ON cards.rarity_id = r.rarity_id
 JOIN `magez_cfv_trigger` t ON cards.trigger_id = t.trigger_id
 JOIN `magez_cfv_skills` s ON cards.skill_id = s.skill_id
4

2 に答える 2

2

左結合が必要です

LEFT JOIN キーワードは、右側のテーブルに一致するものがなくても、左側のテーブル (table_name1) からすべての行を返します。

これを試して

SELECT c.clan_name, n.nation_name, 
    CONCAT(r.rarity_shorthand, " - ", r.rarity_name) AS rarity_text, 
    t.trigger_name, s.skill_name
 FROM `magez_cfv_cards` AS cards
 JOIN `magez_cfv_clans` c ON cards.clan_id = c.clan_id
 LEFT JOIN `magez_cfv_nations` n ON cards.nation_id = n.nation_id
 JOIN `magez_cfv_rarity` r ON cards.rarity_id = r.rarity_id
 JOIN `magez_cfv_trigger` t ON cards.trigger_id = t.trigger_id
 JOIN `magez_cfv_skills` s ON cards.skill_id = s.skill_id
于 2012-11-14T15:06:41.500 に答える
1

使用する関数は でIIF()あり、その構文は

IIF([condition],[if true],[if false])
于 2012-11-14T15:07:26.650 に答える