我有以下表格:公司,设备,项目。计数相关外键出错
项目表内容链接到具有外键的设备,并且设备通过另一个外键链接到公司。
我想要什么:
计数的链接项目到选定的纪录设备表。
下面的查询获取的设备列表:
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