简体   繁体   中英

SQl Query to retrieve data

I cannot figure out how to get the required data from my table. The query which I wrote shows an error saying subquery returns more than one row..

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

Here the subquery for bill_schedule returns more than one row, where show_bill is a boolean column. All I want here is to display the 'name' from the business whose show_bill is set to 1.

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 )

Since the sub query is returning multiple rows, you can't use an equality operator

Just change the = to IN in your where clause:

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 )

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM