我有表格問題,主題和question_has_topic(多對多關係)。在我的應用程序管理員中,查看按主題分組的問題的細目,並選擇他們希望系統隨機選擇以創建測試的人數。
這是他們看到的那種表:根據所有符合條件進行選擇(關係部門)
+-----------------------+---------------------+------------+ | Topics | Questions available | Selection: | +-----------------------+---------------------+------------+ | health,safety,general | 13 | | | health | 3 | | | safety | 7 | | | general | 1 | | +-----------------------+---------------------+------------+
計數爲主題的具體分組是獨一無二的。無論如何,一旦他們做出選擇,我需要一個SQL語句來選擇與給定的主題分組相對應的問題。 也就是說我可能需要3個題目健康,安全和一般的問題。
我在網上做了一些研究,我認爲,我試圖做的是被稱爲關係代數鴻溝,這是我的topicids的任意分組嘗試:
select questionid from question_has_topic where not exists ( select questionid from question_has_topic where topicid not in (8,9,10))
結果是空的,但數據庫中有2個問題,它們都包含所有這些主題ID,這些主題ID告訴我這是行不通的。我下面從這個link
我不明白這個問題。你可以改述 – Luke101 2012-02-20 02:51:30
另請參閱此問題與超過10種方式來查找結果:[如何過濾SQL結果中的一個通過多關係](http://stackoverflow.com/questions/7364969/how-to- filter-sql-results-in-a-many-through-relation)以及性能測試(針對Postgres,而不是MySQL)。 – 2012-02-20 07:18:42