2017-11-06 5 views
1

私はyes/no列をクエリに追加する方法を考えています。ここに私のシナリオです:MySQLはい/いいえ列とフィルタリングを追加する

スキーマ

Table_A Table_B 
------- ------- 
uid   uid 
color  name 

サンプルデータ

Table_A  Table_B 
uid color uid  name 
1  red  1  Joe 
1  blue  1  Joe 

クエリ

SELECT table_a.color,table_b.name 
FROM table_a 
LEFT JOIN table_b ON table_a.id = table_b.id 
WHERE table_a.color LIKE 'red' 

予想通り、この作品は、しかし、私は '青' という名前の列を追加したいですJoeが青色と赤色を持つ場合は、列に 'Y'を追加し、そうでない場合は 'N'を追加します。

期待される成果

uid color blue 
1  red  Y 
+0

を結果として得るために、クエリの下にしようとすることができますが、余分な青の列 – Rams

+0

いいえ、私はそれらの対象から除外することを希望してすべてのレコードを表示しますか結果を出力します。 – user1676703

答えて

1

あなたは

 SELECT A.uid,A.color,case when cnt=2 then 'Y' else 'N' end as blue 
     FROM tableA as A 
     LEFT JOIN (select uid as id,count(distinct color)as cnt from tableA 
     WHERE lower(color) in ('blue', 'red') group by uid) as B ON A.uid = B.id 
     WHERE A.color='red' 
+0

'uidをIDとして選択し、tableBからcntとしてカウントします(別の色) - この例ではtable_bに色がありません。これはtable_aですか? – user1676703

+0

うん、それはtableAだけです、そのために申し訳ありません – Rams

+0

ありがとう、このメソッドは、私が探していたものでした。期待どおりに動作します。 – user1676703

関連する問題