如何从包含子查询的SQL查询中选择所有内容

时间:2011-05-20 23:32:37

标签: mysql sql

我想执行mySQL查询,该查询返回表中的所有结果,但如果它们对应于单独的查询,则还有一个具有“selected”值的附加列。例如

| name |
|------|
| a    |
| b    |
| c    |

我希望能够在查询“select * from table name ='a'时返回以下内容;

| name | selected |
|------|----------|
| a    |  yes     |
| b    |          |
| c    |          |

也就是说,我也想知道哪些遗漏了。

3 个答案:

答案 0 :(得分:2)

select *
    , selected = case
        when exists (
            select *
            from table2 t2
            where t2.field = t1.field
                and ...etc.
        ) then 1 
        else 0
    end
from table t1

答案 1 :(得分:1)

Where子句限制您的行集,因此您只能获得名为“a”的行。 要让所有这些人加入有限的表格回到自己或使用IF而不在哪里:

SELECT *, IF( name='a', 'yes', '') AS selected
FROM table

答案 2 :(得分:0)

对我有用的是:

select a.*
    , name = case
        when 
           a.name = 'a'
         then 0 
        else 1
    end
as selected
from points as a