我有以下表格:公司,設備,項目。計數相關外鍵出錯
項目表內容鏈接到具有外鍵的設備,並且設備通過另一個外鍵鏈接到公司。
我想要什麼:
計數的鏈接項目到選定的紀錄設備表。
下面的查詢獲取的設備列表:
SELECT devices.device_id,devices.device_name
FROM devices,company
WHERE devices.for_id = (company.company_name='Sony')
ORDER BY devices.device_name ASC
結果:
id | device
0 | Device 1
1 | Device 2
下面的查詢得到正確的計數:
SELECT items.rom_name , COUNT(items.rom_name) AS 'count'
FROM items
WHERE items.device_for_id = 1
結果:
device | count
Device 1 | 2
Device 2 | 7
它的確定到現在爲止,我想將它們合併在一起,因爲我想它作爲一個JSON響應,所以我嘗試了以下內容:
SELECT devices.device_name,devices.device_id,count(items.device_for_id)
AS 'roms_count'
SFROM devices,company,items
SWHERE devices.for_id=(company.company_name='".$_GET['company_name']."')
SORDER BY devices.device_name ASC
結果:
Device | roms_count
Device 1 | 15
這裏的我的問題是,ROM數量不正確,它獲得所有記錄的總和,而且它只顯示一個設備。
device_for_id in項是外鍵。
這是什麼正確的查詢?
更新:
公司(COMPANY_ID,COMPANY_NAME)
設備(DEVICE_ID,設備名,for_id(國外))
項目(device_for_id(國外),rom_id,rom_name)
devices.for_id是公司的FK嗎? – Tin
每個項目都鏈接到一個設備,每個設備鏈接到一個公司,例如Windows 7(項目)鏈接到華碩T100(設備),該鏈接到華碩(公司)。 – Jaeger
不,項目中的device_for_id是設備的外鍵,設備中的「for_id」是公司的外鍵 – Jaeger