0

参加する必要がある 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
4

2 に答える 2