1

私はMySQLを初めて使用するので、例を使用して問題を明らかにします...

私は2つのテーブルを持っています:

表1:

+----+-----+-----+-----+-----+
| id | a1  | b1  | c1  | d1  |
+----+-----+-----+-----+-----+
|  1 | ... | ... | ... | ... |
|  2 | ... | ... | ... | ... |
|  3 | ... | ... | ... | ... |
|  4 | ... | ... | ... | ... |
|  5 | ... | ... | ... | ... |
|  6 | ... | ... | ... | ... |
+----+-----+-----+-----+-----+

表2:

+----+-----+-----+-----+---------------+
| id | a2  | b2  | c2  | table1_row_id |
+----+-----+-----+-----+---------------+
|  1 | ... | ... | ... | ...           |
|  2 | ... | ... | ... | 4             |
|  3 | ... | ... | ... | ...           |
+----+-----+-----+-----+---------------+

Table2列table1_row_idはtable1のキーです。

table2.table1_row_id列で参照されていないtable1データを取得するには、どの種類のクエリを使用する必要がありますか?

たとえば、上記のテーブルの場合、クエリは次のようなテーブルを返す必要があります。

+----+-----+-----+-----+-----+
| id | a1  | b1  | c1  | d1  |
+----+-----+-----+-----+-----+
|  1 | ... | ... | ... | ... |
|  2 | ... | ... | ... | ... |
|  3 | ... | ... | ... | ... |
|  5 | ... | ... | ... | ... |
|  6 | ... | ... | ... | ... |
+----+-----+-----+-----+-----+

おそらくこれは簡単ですが、どうすればよいのかまだわかりません...

4

2 に答える 2

3
SELECT * 
FROM t1 
WHERE 
    `id` NOT IN (SELECT `table1_row_id` 
                 FROM t2 
                 WHERE
                     `table1_row_id` IS NOT NULL)
于 2012-11-04T12:14:26.043 に答える
1
select t1.a1, t1.b1, t1.c1, t1.d1
from table1 t1
left join table2 t2 on t2.table1_row_id = t1.id
where t2.id is null
于 2012-11-04T12:09:14.040 に答える