我有一个带有连接的选择查询的视图。
SELECT
t.a,
t.b,
(SELECT CASE WHEN t2.field IS NULL THEN 0 ELSE 1 END AS Expr1) AS C
FROM table1 t1
LEFT JOIN table2 t2 on t2.link = t1.link
如果在表2中有多个条目具有相同的链接,我将获得重复的条目。
分辨结果的正确方法是什么?是否有一种JOIN类型,它不会返回所有结果,而只返回单行?
谢谢
答案 0 :(得分:6)
select distinct t.a, t.b ...
应该消除重复。
答案 1 :(得分:1)
如果它们真的是重复的,如果你使用distinct,它们将被删除:
SELECT
distinct
t.a,
t.b,
(SELECT CASE WHEN t2.field IS NULL THEN 0 ELSE 1 END AS Expr1) AS C
FROM table1 t1
LEFT JOIN table2 t2 on t2.link = t1.link
答案 2 :(得分:1)
SELECT
t.a,
t.b,
CASE WHEN EXISTS (SELECT * FROM table2 t2 WHERE t2.link = t1.link)
THEN 1
ELSE 0
END AS c
FROM table1 t1