2012-02-17 8 views
1

最初の式を検証するクエリを作成し、それが真であれば次の式を検証する助けが必要です。次のようなものがあります。同じ文にORとANDを使用したMYSQLクエリ

SELECT 
    name 
FROM 
    names 
WHERE 
    (tag_id = 1 OR tag_id = 2) AND (tag_id = 3 OR tag_id = 4) 

ifとexistでサブクエリを使用しようとしましたが、成功しませんでした。

助けが必要ですか?おかげで、線間のビットを読み取る

+1

あなたのロジックがここにどんな意味がありません。 'tag_id'は' AND'の両方の条件を同時に満たすことはできません。サンプルデータや期待される結果を含め、達成しようとしていることを説明できますか? –

答えて

3

、おそらくこのような何か:

SELECT n1.name 
    FROM names n1 
     INNER JOIN names n2 
      ON n1.name = n2.name 
    WHERE (n1.tag_id = 1 OR n1.tag_id = 2) 
     AND (n2.tag_id = 3 OR n2.tag_id = 4) 
+0

あなたの助けていただきありがとうございますが、これは私のクエリで動作していないようですが、私はすでにたくさんの結合を持っています。 mysqlが1つの式を検証する方法はありますか? – Henrique

+1

@Henrique:私のコメントで述べたように、あなたが解決しようとしている問題をよりよく説明する必要があります。あなたの質問にサンプルデータと期待される結果を追加することは、その目的のために大きな道を行くでしょう。 –

+0

あなたのロジックは正しいと思われますが、スクリプトは簡単に説明するのがちょっと複雑です。私はその論理に取り組んでいきます。ありがとう – Henrique

関連する問題