0

这是我的查询:

SELECT id, DeviceName, DeviceTypeId
FROM device
WHERE DeviceTypeId LIKE (SELECT DeviceId FROM net_backupdevice WHERE CustomerId = '1');

执行后显示以下错误。

ERROR 1242 (21000):子查询返回多于 1 行

此表 net_backupdevice 返回 2 条记录,我希望将记录信息 id、DeviceName、DeviceTypeId 都存储在设备表中。

所以请帮忙。

4

2 回答 2

0
SELECT id, DeviceName, DeviceTypeId FROM device WHERE DeviceTypeId IN (select DeviceId from net_backupdevice where CustomerId = '1');

请注意 IN 而不是 Like

于 2012-08-01T10:07:32.450 回答
0

最简单的修复

SELECT id, DeviceName, DeviceTypeId 
FROM device 
WHERE DeviceTypeId IN (select DeviceId from net_backupdevice where CustomerId = '1');

可能这是一个正确的版本

SELECT id, DeviceName, DeviceTypeId 
FROM device d inner join net_backupdevice nb on d.DeviceTypeId = nb.DeviceId
WHERE nb.CustomerId = 1;
于 2012-08-01T10:09:55.833 回答