![](/img/trans.png)
[英]How to select columns where some columns contain certain data select all columns with same another column
[英]Select distinct columns where another column does not contain a particular value
我有一張看起來像這樣的桌子
ID | 名稱 | col1 |
---|---|---|
1個 | 富 | 一種 |
2個 | 富 | C |
3個 | 酒吧 | 一種 |
4個 | 酒吧 | 丁 |
我想要 select col1沒有條目D的所有名稱
結果應該是“ foo ”
我試過了
SELECT DISTINCT name FROM table WHERE col1 != D
但由於 id 3,它返回“ foo ”和“ bar ”
避免過度使用DISTINCT
。
SELECT name
FROM table
GROUP BY name
HAVING SUM(col1='D') = 0
由於需要對名稱進行聚合GROUP BY name
。 HAVING
在聚合后應用。 col1='D'
是一個 1/0 表達式,因此將它們相加,您希望 0 成為總數。
數據
CREATE TABLE mytable(
id INTEGER NOT NULL
,name VARCHAR(40) NOT NULL
,col1 VARCHAR(40) NOT NULL
);
INSERT INTO mytable
(id,name,col1) VALUES
(1,'foo','A'),
(2,'foo','C'),
(3,'bar','A'),
(4,'bar','D');
使用Group_Concat()
如下
select
name
/*,Group_Concat(col1) col1 */
from mytable
group by name
HAVING Group_Concat(col1) not like '%D%'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.