如何使用JOIN在SQL VIEW选择查询中区分结果?

时间:2012-01-13 09:13:16

标签: sql select join

我有一个带有连接的选择查询的视图。

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类型,它不会返回所有结果,而只返回单行?

谢谢

3 个答案:

答案 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
相关问题