所以這是我想解決的問題。SQL一對多?
Category(CatID(PK), CatName,....)
Writer(wtrID(PK), CatID(FK), wtrName,....)
Report(rpID(PK), title)
Authors(rpID(FK),wtrID(FK))
如何創建一個列表來顯示來自正好3種不同類別的作者報告的標題?
所以這是我想解決的問題。SQL一對多?
Category(CatID(PK), CatName,....)
Writer(wtrID(PK), CatID(FK), wtrName,....)
Report(rpID(PK), title)
Authors(rpID(FK),wtrID(FK))
如何創建一個列表來顯示來自正好3種不同類別的作者報告的標題?
select r.title, group_concat(w.wtrID) as writer_ids
from Reports r
inner join Authors a on a.rpID = r.rpID
inner join Writer w on w.wtrID = a.wtrID
inner join Category c on c.CatID = w.CatID
group by r.title
having count(distinct c.CatID) = 3
OP的評論現在顯示需要包括編寫報告的作者的「wtrID」。 *(但接下來的評論讓我覺得這實際上並不是必需的。)* – MatBailie 2012-08-02 10:35:13
謝謝Juergen和其他幫助過的人! :D – Hotmama 2012-08-02 10:49:22
@ user1571007感謝本網站上的某個人的方式是接受答案(通過點擊答案左側的檢查)和/或提出答案。 – fancyPants 2012-09-26 11:36:14
三個特定類別?或*任何*三類,只要它們不同?你是否只需要報告列表或其他信息(如作者和類別等),如果是,則需要採用何種格式。最後,SQL有很多種變體,你可以使用它們? *(MySQL,SQLite,MS SQL Server,Oracle等?)* – MatBailie 2012-08-02 10:27:46
你需要作者表的任何理由? FK表通常用於多對多的關係。您可以直接從The Report表中引用Writer表。 – LukeP 2012-08-02 10:28:15
也許:select .... from .... join .... on .... where? – wildplasser 2012-08-02 10:28:40