2 回答

TA貢獻(xiàn)1155條經(jīng)驗(yàn) 獲得超0個(gè)贊
一個(gè)典型的解決方案用于group by聚合具有相同 的行nachname,然后使用having子句進(jìn)行過(guò)濾:
select nachname
from mytable
where name in ('joomla', 'wordpress', 'typo3')
group by id, nachname
having count(distinct name) = 3
我假設(shè)這id是 的唯一標(biāo)識(shí)符nachname,所以我將它添加到group by子句中;如果不是這種情況,請(qǐng)隨時(shí)將其刪除。
此查詢?yōu)槟峁┻m用于列表nachname中所有三個(gè)值的 s 。in
name通過(guò)修改in列表和目標(biāo)計(jì)數(shù),很容易使查詢適應(yīng)更多(或更少) s。
如果表中沒(méi)有重復(fù)(nachname, name)的重復(fù)項(xiàng),可以使用count(*)而不是count(distinct ...),這樣會(huì)更有效率。

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以使用下一個(gè)查詢來(lái)解決您的問(wèn)題:
SELECT
nachname, vorname, email,
CONCAT(s1.name,' ', s2.name,' ', s3.name) as skills,
user.id
FROM user
JOIN userskill ON user.id = userskill.userid
-- each of joins filter by demand skillname
JOIN skill s1 ON userskill.skillid=s1.id and s1.name = 'Wordpress'
JOIN skill s2 ON userskill.skillid=s1.id and s2.name = 'Joomla'
JOIN skill s3 ON userskill.skillid=s1.id and s3.name = 'Typo3'
;
- 2 回答
- 0 關(guān)注
- 90 瀏覽
添加回答
舉報(bào)