SQL:查询至少包含一个" true"值

时间:2014-03-19 14:08:52

标签: sql

我有这张表:

TABLE path:

id  idT  nome  bool1
1   it1  pp    true
2   it1  ff    false
3   it1  ss    false
4   it2  rr    false
5   it3  ee    true
6   it3  zz    true
7   it4  xx    false
8   it4  yy    false

我想得到下表:

idT nome  bool1
it1 pp    true
it1 ff    false
it1 ss    false
it3 ee    true
it3 zz    true

我尝试过:

 select nome, bool1 from path where bool1='true';

但是我只得到值“true”而不是我发布的第二个表!

我希望你回复“idT”(字段“nome”和“bool1”),“bool1”的值至少包含一个“true”。

1 个答案:

答案 0 :(得分:0)

你应该展示一些努力,并尝试自己解决(如果没有其他原因,这对学习有好处),但无论如何,这可以通过多种方式完成。这是两个:

SELECT idt, nome, bool1 FROM path
WHERE idt IN (
  SELECT idt FROM path WHERE bool1 = 'true');

SELECT path.idt, nome, bool1 FROM path
INNER JOIN
  (SELECT DISTINCT idt FROM path WHERE bool1 = 'true') q ON path.idt = q.idt;

Sample SQL Fiddle