2017-11-24 4 views
0

私はデータベースから指定された情報を取得するつもりです。私はこのような何かを管理するが、私はあなたがcoalesce()を使用することができますitemsこれらの列をmysqlでマージするにはどうすればいいですか?

SELECT char_name 
    , obj_Id 
    , items.item_id 
    , weapon.name as weapon 
    , armor.name as armor 
    , etcitem.name as etc 
    FROM characters 
    join items 
    on characters.obj_Id = items.owner_id 
    LEFT 
    JOIN weapon 
    ON items.item_id = weapon.item_id 
    LEFT 
    JOIN armor 
    ON items.item_id = armor.item_id 
    LEFT 
    JOIN etcitem 
    ON items.item_id = etcitem.item_id; 

enter image description here

答えて

2

という名前の列にマージする方法の代わりにweapon, armor, etcのか分からない:

SELECT char_name, obj_Id, items.item_id, 
     coalesce(weapon.name, armor.name, etcitem.name) as item_name 
. . . 

COALESCE()関数は、リスト内の最初の非ヌル式を返します。

構文

COALESCE(expr1, expr2, ...., expr_n)

関連する問題