运行此查询,
select * from table;
返回以下内容
|branch | number |
-------------------
| 1 | 123 |
| 1 | 001 |
| 2 | 123 |
| 3 | 123 |
| 4 | 123 |
| 1 | 123 |
| 1 | 789 |
| 2 | 123 |
| 3 | 123 |
| 4 | 009 |
我想找到ONLY branch 1
独有的值| 1 | 001 |
| 1 | 789 |
这可以在没有将数据存储在单独的表中的情况下完成吗?我尝试过一些“选择不同”的查询&似乎没有得到我期待的结果。
答案 0 :(得分:2)
SELECT branch, number
FROM table
WHERE branch = 1
GROUP BY branch, number
答案 1 :(得分:2)
如果您不需要任何汇总,可以使用distinct
代替group by
:
select distinct branch
, number
from YourTable
where branch = 1
答案 2 :(得分:1)
我想我想说的是我想找到所有只有分支1独有的数字。如果在任何其他分支中找到它们,我都不想看到它们。
我想这就是你想要的。
SELECT distinct number
FROM MyTable
WHERE branch=1 and number not in
( SELECT distinct number
FROM MyTable
WHERE branch != 1 )
答案 3 :(得分:0)
试试这个:
SELECT branch, number
FROM table
GROUP BY branch, number
以下是SQLFiddle,供您查看
如果要将其限制为仅分支1,则只需添加where子句。
SELECT branch, number
FROM table
WHERE branch = 1
GROUP BY branch, number
答案 4 :(得分:0)
要选择列number
中唯一且值branch
为1的所有值,您可以使用以下代码:
SELECT branch, number
FROM table1
WHERE number IN (
SELECT number
FROM table1
GROUP BY number
HAVING (COUNT(number ) = 1)
)
AND branch = 1