↑postgresの記事ですが、mysqlでも同様に実行できました。
foo.sql
SELECT *
FROM
test_table
WHERE
(col,co2) IN -- 複数のカラムを指定
(SELECT subcol1,subcol2 -- 副問いの戻り値も複数のカラムを指定
FROM subtable
WHERE id > 10 )
知らなかったなんて、お恥ずかしい
※手元にあるmysqlはv.5.1.61ですが、v.4.1から使えるらしい
#sqlの仕様として、mysqlのdocでは分かりませんでしたが、sql99から利用可らしい
http://dev.mysql.com/doc/refman/5.1/ja/comparison-operators.html
↑では、分かりませんでしたが、次のurlよれば、sql99から利用できるみたい。
私の知る限り、SQLServer(Accessも)以外のRDBMSでは、
WHERE
(カラム1, カラム2) IN
(SELECT カラムA, カラムB
FROM サブテーブル
WHERE 条件
)
という「行値構成子」とか「行値式」とかいうSQL99からの書き方が可能ですが、SQLServerではこの書き方ができません。そのため、複数のカラムが条件として必要なときには、SQLServerではEXISTSで書くしかありません。
http://d.hatena.ne.jp/Sikushima/20100627/1277616745