どこでも検索されましたが、回答が見つかりませんでした。だから問題に。少なくとも1つの値がリストに含まれていないMySQL select id
は私がATTRが欠落している行のIDを取得するためにクエリをしたいと思い、私はこの
table1
+------+--------+
| id | attr |
+------+--------+
| 1 | weight |
| 1 | width |
| 1 | length |
| 2 | width |
| 2 | length |
+------+--------+
のようなテーブルを持って言うことができます。 この場合、id2。
チェック対象のattrは、たとえば次のようなリストにすることができます。 ( '重量'、 '幅'、 '長さ'、 '高さ') SELECT DISTINCT attr FROM table1 WHERE id = 1。
私はNOT INとNOT EXISTSで試しましたが、0またはすべての結果しか得られません。
SELECT id FROM table1
WHERE attr NOT IN ('weight', 'length', 'width','height')
と
SELECT id
FROM table1 t1
WHERE NOT EXISTS
(
SELECT 1
FROM table1 t2
WHERE t2.name NOT IN('weight', 'length', 'width','height')
)
EDIT
表には、私は次のことを得ることができますどのように
+------+--------+
| id | attr |
+------+--------+
| 1 | weight |
| 1 | width |
| 1 | length |
| 1 | height |
| 2 | width |
| 2 | length |
| 2 | other |
+------+--------+
のようなものですか?すなわち、行IDのための行方不明のattr(私はコメントで説明したように、IDだけで別名ではない主キーIDです)
+------+--------+
| id | attr |
+------+--------+
| 2 | width |
| 2 | length |
+------+--------+
それが一意でない場合は、それがID列の目的に反していることに注意する必要があります。ここで一つを用いて集約です。 –
ここのIDは簡単にするためのものであり、デモンストレーションの目的で製品番号のようなものにすることができます。 –