我有两张表, tbl 和 tbl2 我必须加入。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
来自 tbl2 的剩余行在 a 和 b 上。
我一直在思考实现以下目标的最佳方法是什么。tbl2 可以修改,因为它仅用于此查询的目的。
你有什么想法实现这一目标的最有效方法是什么?
编辑:
通过“具有相同的 a、b 和 c”,我的意思是这样的:
SELECT a, b, c FROM tbl2 GROUP BY a, b ,c HAVING COUNT(*) > 1