我有以下表架構:
user (id, name, alias, password, active, mail, age)
comment(id, news(FK), user(FK), text, date)
new_cat(news(FK), category(FK))
我正在嘗試選擇所有評論new過 EVERY 中至少一個的用戶category。
這就是我沒有成功的嘗試:
SELECT * FROM user AS u, comment AS c
WHERE u.id = c.user AND c.news IN (SELECT news FROM new_cat);
我相信這沒有正確迭代并檢查每個category,只是檢查條件是否僅適用于一個category。
我怎樣才能正確地做到這一點?
uj5u.com熱心網友回復:
加入表,按用戶分組并在HAVING子句中設定條件。
如果有一個category存盤所有類別的表:
SELECT u.*
FROM user u
INNER JOIN comment c ON c.user = u.id
INNER JOIN new_cat n ON n.news = c.news
GROUP BY u.id
HAVING COUNT(DISTINCT n.category) = (SELECT COUNT(*) FROM category);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/475223.html
下一篇:在case陳述句中難以給出別名
