0

MySQL に 2 つのテーブルがあります。両方とも 2 つの列があります。MySQLを使用して、あるテーブルの1つの行が他のテーブルにあるかどうかを確認する方法は?

例えば、

table 1:
a, c
b, a
d, f


table 2:
a, k
c, a
g, m
c, l

テーブル 1 の各行 (a,c) (b,a) (d,f) がテーブル 2 に存在するかどうかを確認し、各行がテーブル 2 に表示される時間を含む新しい列をテーブル 1 に作成するにはどうすればよいですか? ここでは順序は関係ないので、(a,c) は (c,a) と同じです。したがって、この場合、テーブル 1 の 1 つの行 (a,c) は、テーブル 2 で 1 回一致します。

4

2 に答える 2

2
SELECT  a.col1, a.col2, COUNT(b.col1)
FROM table1 a LEFT JOIN table2 b
ON (a.col1 = b.col1 OR a.col1 = b.col2) 
AND (a.col2 = b.col1 OR a.col2 = b.col2)
GROUP BY a.col1, a.col2

http://sqlfiddle.com/#!2/89c17/1

于 2012-11-15T15:53:18.827 に答える
2

使用すると、レコードがなくてもLEFT JOINすべてのレコードが表示されますtable1table2

SELECT  a.col1, a.col2, COUNT(b.col1)
FROM    table1 a
        LEFT JOIN table2 b
            ON a.col1 = b.col1 AND
                a.col2 = b.col2
GROUP BY a.col1, a.col2
于 2012-11-15T15:11:01.227 に答える