0
好吧,我放棄了,這個查詢已經過去了,我正在尋求幫助。BLOG系統SQL summery查詢問題
裏面一個MySQL數據庫,我有一個類別和職位表,就像一個標準的博客系統:
tblCategories (intID (PK), strTitle)
tblAreas (intID (PK), strName)
tblPosts (intID (PK), intCategoryID (FK), strTitle, htmlText)
然後,我有一對夫婦的博客支持表:
tblExternalLinks (intID (PK), intPostID (FK), strTitle, urlLink)
tblComments (intID (PK), intPostID (FK), strComment)
tblImages (intID (PK), intPostID (FK), urlImage)
tblLocations (intID (PK), intPostID (FK), intAreaID (FK), urlImage)
我想要一個附加到類別變量 (讓我們只是說在僞php代碼)$ intCatID,並有一個 位置與一個特定的AR變量$ intAreaID。這SQL應該 是這樣的:
SELECT tblPosts.* from tblPosts INNER JOIN tblLocations ON tblLocations.intPostID=tblPosts.intID WHERE intCategoryID=$intCatID AND intAreaID=$intAreaID GROUP BY tblPosts.intID;
可有人請讓我知道如果這是正確的?我不確定回合 GROUP BY部分。
我希望同樣的名單,但這次與支撐表中的所有其他 連接記錄計數:
SELECT tblPosts.*, intExternalLinksCount, intCommentsCount, intImagesCount, intLocationsCount ...
我的第一個猜測是使用嵌套表格檢索計數或 連接,這可能會使查詢非常大。我也懷疑 性能更快。這些東西是我砰的一聲我的 頭。
和答案都高度讚賞...
GROUP BY用於與聚合函數結合使用。這些函數通常包含在SELECT子句中,但這不是必需條件。通常,出現在SELECT子句中的任何非聚合列必須包含在GROUP BY子句中。在與標準的偏離中,MySQL會原諒這種遺漏。這隻意味着你最終會得到不可預知的結果。 – Strawberry 2013-03-25 12:12:18
考慮提供一個小而有代表性的數據集(作爲SQLFIDDLE和/或'DDLs'),以及您期望從查詢中獲得的結果集。 – Strawberry 2013-03-25 12:13:55
不,因爲那樣我會問一個確切的查詢解決方案,而我想要一個我理解的僞查詢(並自己構建查詢)。完美的答案將是一個正確的結構查詢,其中的解決方案是可見的,但不一定工作。此外,上述表格和字段名稱已更改爲保護商業貿易知識(當然)。因此,精確的查詢不會是一個解決方案。我認爲這個問題已經足夠清楚了...... – 2013-03-25 14:00:08