mysql クエリを実行して、列の値が別の列のすべての値のどこにも存在しないテーブルからすべての行を選択したいfilms
( title
) collection
。
これは、コンテンツを含む私のテーブルの簡略化されたバージョンです。
mysql> select * from films;
+----+--------------+--------------+
| id | title | collection |
+----+--------------+--------------+
| 1 | Collection 1 | NULL |
| 2 | Film 1 | NULL |
| 3 | Film 2 | Collection 1 |
+----+--------------+--------------+
これが私のクエリです:
mysql> SELECT * FROM films WHERE title NOT IN (SELECT collection FROM films);
Empty set (0.00 sec)
Film 1
この例では、タイトルと を含む行を選択したいのですFilm 2
が、クエリで行が返されません。
テーブル構造は次のとおりです。
CREATE TABLE `films` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(200) NOT NULL DEFAULT '',
`collection` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;