参加する必要がある tbl と tbl2 の 2 つのテーブルがあります。tbl の列は無関係です。tbl2 の構造は次のとおりです。
CREATE TABLE tbl2 (
a VARCHAR(10)
, b VARCHAR(10)
, c VARCHAR(10)
, d VARCHAR(10)
, e VARCHAR(10)
);
私がする必要があるのは、次の結合を適用することです:
同じ a、b、c を持つ行が複数ある場合は
LEFT JOIN
、a、b、c、d にそれらを配置します。そうでなければ、同じ a と b を持つ複数の行があり、それらが上記
LEFT JOIN
の a、b、cのセットにない場合そうでなければ
LEFT JOIN
、a と b の tbl2 からの残りの行。
以下を達成するための最良の方法は何かを考えてきました。tbl2 は、このクエリの目的でのみ使用されるため、変更できます。
これを達成するための最も効率的な方法は何か考えはありますか?
編集:
「同じ a、b、c を持つ」とは、次のような意味です。
SELECT a, b, c FROM tbl2 GROUP BY a, b ,c HAVING COUNT(*) > 1