ましょうsupose私は、次の表を持ってlist_level
同じクエリで2つの基準と一致しないタプルを選択するにはどうすればよいですか?
| year | cat_id | user_id | id | val_1 | val_2 |
|------|--------|---------|------|-------|--------|
| 2017 | 2 | 141256 | 1501 | ABC | <null> |
| 2017 | 2 | 141256 | 1023 | DRF | <null> |
| 2017 | 1 | 141256 | 882 | TGV | 100 |
| 2016 | 2 | 141256 | 801 | ADG | 90 |
| 2016 | 1 | 141256 | 590 | IKM | 100 |
| 2016 | 1 | 141256 | 480 | EGM | 87 |
| 2015 | 2 | 141256 | 256 | YHX | 70 |
| 2015 | 1 | 141256 | 132 | QWE | 68 |
私はタプルを取得するにはどうすればよい、NOT年= 2017年とNOT私は
SELECT
*
FROM
LIST_LEVEL
WHERE
YEAR <> '2017'
AND CAT_ID NOT IN (2)
しかし、そのクエリを試してみました= 2
CAT_IDで返信
| year | cat_id | user_id | id | val_1 | val_2 |
|------|--------|---------|------|-------|--------|
| 2016 | 1 | 141256 | 590 | IKM | 100 |
| 2016 | 1 | 141256 | 480 | EGM | 87 |
| 2015 | 1 | 141256 | 132 | QWE | 68 |
結果が設定されている
| year | cat_id | user_id | id | val_1 | val_2 |
|------|--------|---------|------|-------|--------|
| 2017 | 1 | 141256 | 882 | TGV | 100 |
| 2016 | 2 | 141256 | 801 | ADG | 90 |
| 2016 | 1 | 141256 | 590 | IKM | 100 |
| 2016 | 1 | 141256 | 480 | EGM | 87 |
| 2015 | 2 | 141256 | 256 | YHX | 70 |
| 2015 | 1 | 141256 | 132 | QWE | 68 |
は最後に、私はこのクエリwhith終わったが、私はそれは少し複雑だと思います。
SELECT
*
FROM (
SELECT
*
FROM
LIST_LEVEL
WHERE
YEAR <> '2017'
UNION
SELECT
*
FROM
LIST_LEVEL
WHERE
CAT_ID NOT IN (2)
) T
このクエリを書くことができる他の方法はありますか?
興味深いです。私は第二の選択肢では決して考えなかっただろう。 – ceochronos