2017-01-12 2 views
0

異なる条件で1つのクエリで複数の選択を行いたい。しかし、何とか私はこの問題に悩まされています。何か案が?複数の選択を行うときにエラーサブクエリが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行を持っている場合、このエラーが発生した以上の1行

+0

を考慮使用すると、エラーメッセージは、それをすべて言います。質問はむしろ、あなたは何をしようとしていますか? – jarlh

+0

それは変です。あなたが表示するクエリは大丈夫です。エラー '副問合せが1行以上を返します。それは実際に実行中のクエリですか? –

+0

私は1つのクエリでWHERE条件を複数選択しようとしています。グーグルで答えるとエラーが出る – 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、good job thx man – lalalala

0

を返します。あなたが最初のクエリで選択されたイベントに関連するドアの名を参照してくださいあまりにもしたい場合は、

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

関連する問題