2017-01-16 10 views
1

によって行の選択は、私が書いた最初のクエリは、次のとおりです。のMySQL:リバース基準

select t.groupNum from table1 t 
JOIN table1 s 
on t.groupNum=s.groupNum 
and t.id!=s.id 
and t.bool='true' and s.bool='true'; 

このクエリは、グループ内の少なくとも2つの「真」を含む、このようなグループを選択します。右?

が正確にゼロのの 'true'値( 'true'と 'false'の2つの値のうち2番目の値であるt.bool = 'false'のみ)を選択する必要があります。

助けが必要ですか?

答えて

3

これを行うには、group byhavingを使用できます。

select groupNum 
from table1 
group by groupNum 
having sum(bool='true') = 0 

MySQLは条件が真であると0そうでないとき1を返すブール値などの条件を扱います。これについて

1

方法:

SELECT t.groupNum 
FROM table1 t 
GROUP BY t.groupNum 
HAVING COUNT(t.bool = 'true') = 0; 

私はあなたが参加し、自己をやっている理由はわかりません。また、t.boolの列は実際には 'true'と 'false'の値を持つテキスト値ですか?

+0

実際には、t.bool列は 'true'と 'false'の値を持つテキスト値ですか? - ありがとうございました。いいえそうではありません。たとえば、最初のビューからより明確にすることです。 – Haradzieniec

+0

これは、応答のために感謝しました。私は私の答えが@vkpの答えに似ていることに気が付いています - 私たちは正しい道に居ることを望みます! – bbrumm

+1

私の答えの簡単なコピー貼り付け:) –