回答受付が終了しました

MySQLを使っています。

MySQL | PHP51閲覧

回答(1件)

0

SELECT キャラ名,CONCAT( case when 0<(select COUNT(*) FROM t2 WHERE t2.キャラid=t1.キャラid AND ( 技1id IN(SELECT 技id FROM t3 WHERE 属性='拳') or 技2id IN(SELECT 技id FROM t3 WHERE 属性='拳') or 技3id IN(SELECT 技id FROM t3 WHERE 属性='拳'))) then '拳' ELSE '' END, case when 0<(select COUNT(*) FROM t2 where t2.キャラid=t1.キャラid AND ( 技1id IN(SELECT 技id FROM t3 WHERE 属性='蹴') or 技2id IN(SELECT 技id FROM t3 WHERE 属性='蹴') or 技3id IN(SELECT 技id FROM t3 WHERE 属性='蹴'))) then '蹴' ELSE '' END, case when 0<(select COUNT(*) FROM t2 where t2.キャラid=t1.キャラid AND ( 技1id IN(SELECT 技id FROM t3 WHERE 属性='気') or 技2id IN(SELECT 技id FROM t3 WHERE 属性='気') or 技3id IN(SELECT 技id FROM t3 WHERE 属性='気'))) then '気' ELSE '' END) FROM t1 です。

ありがとうございます。完璧でした。 分解して理解しようとしているのですがすぐに詰まりました・・・ 初心者質問ですみませんがどうしてGROUP句を使っていないのに別テーブルを参照できるのでしょうか? select COUNT(*) FROM t2 WHERE t2.キャラid=t1.キャラid これだけでエラーがでました。