2017-01-12 74 views
0

我想在一個查詢中做不同條件的多重選擇。但不知何故,我陷入了這個問題。任何想法?錯誤子查詢返回超過1時做多個選擇

SELECT 
    (select io_link_event_names.name from doors left join controller_devices on doors.iid = controller_devices.iid left join events on controller_devices.mac = events.mac left join io_link_event_names on events.iolinkerid = io_link_event_names.extra where events.iolinkerid = "9000;1") AS forced, 
    (select doors.name FROM doors) AS doorname 

錯誤#1242 - 子查詢返回多個1行

+0

錯誤消息說,這一切。問題是:你想做什麼? – jarlh

+0

這很奇怪。您顯示的查詢看起來不錯,不應該出現RAISE錯誤「子查詢返回多於一行」。這實際上是你正在運行的查詢? –

+0

我想多選1查詢不同的WHERE條件。谷歌搜索後,我得到了那些你用'不同conditions' – lalalala

回答

1

考慮這個

SELECT d.[forced], doors.name as doorname 
from doors 
left join (
select controller_devices.iid, io_link_event_names.name as [forced] 
from events 
inner join controller_devices on controller_devices.mac = events.mac 
inner join io_link_event_names on events.iolinkerid = io_link_event_names.extra 
where events.iolinkerid = "9000;1" 
) as d on d.iid = doors.iid 
+0

o yea,幹得好thx男人 – lalalala

0

如果你在表門超過1行,你得到這個錯誤。如果你想看到過有關在第一次查詢所選事件門的名稱,使用

select io_link_event_names.name, 
     doors.name doorname 
    from doors 
    left join controller_devices 
    on doors.iid = controller_devices.iid 
    left join events 
    on controller_devices.mac = events.mac 
    left join io_link_event_names 
    on events.iolinkerid = io_link_event_names.extra 
where events.iolinkerid = "9000;1" 
+0

我已經試過了。但我想要不同的條件,並在每個選擇別名 – lalalala

相關問題