我不是在使用複雜的MySQL的非常好,所以我堅持帶着幾分複雜的(但仍然非常基本的,我認爲)情況:排序(算上本FK記錄)
我有3個表:
- 表A有2個記錄,一個與ID 1,一種具有ID 2他們都有一個 外鍵表B,這是相同的。
- 表B目前只有 一條記錄,但將來會有更多。
- 表C有多個 記錄,所有與表A的參考要麼記錄1或2
我想達到的目標: 我想選擇所有(或部分)關於表A的信息記錄,但僅限於引用表B中記錄的那些記錄。現在,對我來說,這就是我的結果:我想要命令結果,從表C中記錄最多的記錄開始。
所以:
SELECT COUNT(C.*) AS NUMBER_OF_RECORDS, A.*
FROM `TableA` A, `TableB` B, `TableC` C
WHERE A.bID = 1 AND C.aID = A.ID
ORDER BY NUMBER_OF_RECORDS DESC;
類似的東西,不同的是,這並不爲C.aID = A.ID
工作。我希望上面的問題能讓我的意圖更清楚。
任何幫助非常感謝!樣本數據
表的情況
更好的視野:
- 部
- 位置
- 員工
所以現在說,我希望選擇所有部門在一個地點的數據,訂單由員工數量決定。
希望的輸出:
DepartmentID的,DEPARTMENTNAME,no_of_emps
1,銷售,14
2,金融,12
3,管理,6
您需要一個分組語句,因爲您具有聚合函數COUNT。 – kirilloid 2012-03-16 15:02:22
發佈一些樣本數據n所需的o/p ...而不是在長段落中解釋你的問題,如果你發佈樣本數據,每個人都可以輕鬆理解和幫助你... – Teja 2012-03-16 15:03:07
這將會有點複雜,我的MySQL技能是沒有達到挑戰(沒有測試平臺)。我想你需要使用一個子查詢,其中'TableA'是INNER JOIN到'TableB',OUTER JOINed是'TableC' - 你需要通過'TableA.ID'上的GROUP BY。希望能給你一些指導。 – 2012-03-16 15:05:10