2012-08-01 107 views
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,设备名称,DeviceTypeId存储在设备表。

所以请大家帮忙。

+0

的子查询返回更多的价值,尝试加入查询子查询即时 – 2012-08-01 10:08:16

回答

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

请注意,而不是像

的IN
+0

arnoudhgz:其工作..感谢。 – Sandy8086 2012-08-01 10:11:12

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;