正如标题所说,我想拒绝行,所以我不会创建重复项。 第一步是不要联接第二个表中具有更多行的值。
如果需要,这里是一个示例: 表a:
aa |bb |
---|----|
1 |111 |
2 |222 |
表h:
hh |kk |
---|----|
1 |111 |
2 |111 |
3 |222 |
使用普通左联接:
SELECT
*
FROM a
LEFT JOIN h
ON a.bb = h.kk
;
我得到:
aa |bb |hh |kk |
---|----|---|----|
1 |111 |1 |111 |
1 |111 |2 |111 |
2 |222 |3 |222 |
我想摆脱前两行,其中aa = 1。
...
第二步是针对另一个查询,可能在某些情况下,表a在哪里,我将仅过滤表b中多于2行的那些行。 因此,我想创建表c,其中将有:
aa |bb |
---|----|
1 |111 |
有人可以帮我吗? 谢谢。
答案 0 :(得分:0)
仅获得1:1
联接
SELECT a.aa,h.hh,h.kk FROM a
LEFT JOIN h ON a.bb = h.kk
GROUP BY bb HAVING COUNT(kk)=1
仅获得1:n
个加入
SELECT a.aa,h.hh,h.kk FROM a
LEFT JOIN h ON a.bb = h.kk
GROUP BY bb HAVING COUNT(kk)>1