我正在查詢四個表(活動,註釋,類別,user_entries)查找是否有活動或註釋的匹配項。在我的開發數據庫中,我有8項活動和2項符合條件的記錄:取而代之的是16項結果。每個活動都是重複的:一個結果包括第一個音符,另一個包括第二個音符。MySQL查詢給出重複結果
這是查詢,因爲它主張:
SELECT a.`aid`, a.`activityname`, a.`date`, u.`points`, u.`enid`, c.`catname`, n.`nid`, n.`notename`, n.`dates`
FROM activities a
INNER JOIN user_entries u ON a.`aid` = u.`aid_FK`
INNER JOIN categories c ON a.`category` = c.`cat`
INNER JOIN notes n ON u.`mem_no_FK` = n.`mem_no_FK`
WHERE u.`mem_no_FK` = 1995
GROUP BY a.`aid`, a.`activityname`, a.`date`, u.`points`, u.`enid`, c.`catname`, n.`nid`, n.`notename`, n.`dates`
ORDER BY `date`
我已經在好幾個類似的問題在這裏看着,(尤其是question 7696248):但沒有我試過任職。儘管嘗試了很多建議(使用/不使用DISTINCT,使用/不使用GROUP BY,許多連接類型等),但每次都得到相同的結果:查詢有一些基本錯誤。我的SQL知識不好,我不知道如何解決它。
任何人都可以幫忙嗎?
編輯:澄清 該數據庫是持續專業發展活動的記錄。註釋(被混淆地命名,但不是由我!)與活動無關:用戶可以記錄重大事件 - 「由於交通事故導致3個月內沒有完成CPD」等等。
我需要列出筆記和活動在同一頁面上:如果可能,我寧願運行一個數據庫查詢;如果不是,我將不得不運行兩個查詢併合並兩個結果數組。
請你能提供從所有三個表的示例數據? – 2013-05-09 10:30:08
make sqlfiddle http://sqlfiddle.com/ – luksch 2013-05-09 10:31:14
這是意圖行爲:你在援助和筆記上分組,你還期望什麼?你想如何在一行中表示不同的音符?此外,由於您選擇的內容完全相同,因此GROUP BY條款是多餘的,因此後者無用。 – dtech 2013-05-09 11:09:57