2011-06-08 117 views
1

我无法弄清楚如何从我的表中获取所需的数据。这是我写的显示错误说子查询返回多行查询..SQl查询检索数据

SELECT name 
FROM `business` 
WHERE id = (
SELECT business_id 
FROM bill 
WHERE id = (
SELECT bill_id 
FROM bill_schedule 
WHERE show_bill = 1) 

这里bill_schedule子查询返回多行,其中show_bill是一个布尔列。所有我想在这里是从它的show_bill设置为1

回答

0
SELECT `name` 
FROM `business` 
WHERE id in (
SELECT business_id 
FROM bill 
WHERE id in (
SELECT bill_id 
FROM bill_schedule 
WHERE show_bill = 1) 
+0

我的不好!有效。谢谢,那是我犯的一个愚蠢的错误 – Varun 2011-06-08 03:25:09

0

由于子查询返回多行的业务显示“名称”,则不能使用相等运算符

刚在您的where子句中将=更改为IN:

SELECT name 
FROM `business` 
WHERE id IN (
SELECT business_id 
FROM bill 
WHERE id IN (
SELECT bill_id 
FROM bill_schedule 
WHERE show_bill = 1)