1

表 A

itemNo   colorNo
1        3
1        4
2        4
2        70
3        9
3        10

これがやりたかった…

SELECT *
FROM A
WHERE itemNo = '1' AND colorNo = '4';
SELECT *
FROM A
WHERE itemNo = '2' AND colorNo = '70';
SELECT *
FROM A
WHERE itemNo = '3' AND colorNo = '9';

しかし、これら 3 つのクエリを 1 つにまとめることができますか?

これを実行しようとしましたが、最後の条件を満たす 1 行しか返されませんでした。

SELECT *
FROM A
WHERE ((itemNo = '1' AND colorNo = '4') 
or (itemNo = '2' AND colorNo = '70') 
or (itemNo = '3' AND colorNo = '9'));

編集:私が手に入れたテーブルに欠陥があることがわかりました。最初の 2 つの 'itemNo' は存在しませんでした! 最後のものだけが返されたのも不思議ではありません。助けてくれたみんな、ありがとう!これをここに残しておきます。うまくいけば、同様の質問を持つ人に役立ちます。

4

2 に答える 2

8

試す

SELECT *
  FROM A
 WHERE (itemNo = '1' AND colorNo =  '4')
    OR (itemNo = '2' AND colorNo = '70')
    OR (itemNo = '3' AND colorNo =  '9')

または、これを行うこともできます

SELECT *
  FROM A
 WHERE (itemNo, colorNo) IN ((1, 4),(2, 70),(3, 9))

出力:

| | アイテム | コロノ |
--------------------
| | 1 | 4 |
| | 2 | 70 |
| | 3 | 9 |

これがSQLFiddleのデモです

于 2013-07-26T09:43:19.410 に答える
0
SELECT 
    *
FROM 
    A
WHERE 
    (itemNo = '1' AND colorNo = '4') OR
    (itemNo = '2' AND colorNo = '70') OR
    (itemNo = '3' AND colorNo = '9');

ということですか?

于 2013-07-26T09:51:35.867 に答える