3

このようなテーブル

テーブル

|primary_key|  project | tag |
|    1      |    2     |  3  |
|    2      |    2     |  0  |
|    3      |    2     |  4  |
|    4      |    2     |  5  |
|    5      |    3     |  0  |
|    6      |    2     |  0  |

タグ「(3 と 4) または (0 と 4) と (5 と 0)」でプロジェクトをクエリしたいのですが、この例では、出力はプロジェクト 2 である必要があります。これをSQLでどのように書くことができますか?phpmyadmin を使用していくつかの結果を生成しようとしましたが、期待どおりに動作しません。

私を助けてくれて本当に親切です。質問を変更します。条件がはるかに複雑な場合、クエリはテーブル a、テーブル b、テーブル c から取得できますか?

4

4 に答える 4

2

テーブルをそれ自体に結合し、タグ 3/0 を持つすべての行にタグ 4 を持つ別の行があるかどうかを確認できます。

SELECT DISTINCT a.project
FROM table a, table b
WHERE a.project= b.project AND
    ( a.tag = 3 AND b.tag = 4 ) OR 
    ( a.tag = 0 AND b.tag = 4 ) 

更新された質問に従って更新されました。

于 2013-09-12T14:20:32.653 に答える