LINUX.ORG.RU

Как правильно написать sql запрос

 


0

1

Здравствуйте, подскажите, пожалуйста, как правильно написать вот такой sql запрос.

SELECT * FROM sau 
INNER JOIN dev ON sensor_id=dev_id 
INNER JOIN dev ON ou_id=dev_Id  
WHERE id='1'

Суть в том что в поле sensor_id храниться id устройства из таблицы dev, который является сенсором. А в ou_id храниться id устройства из таблицы dev, которое является обьектом управления. Об этих двух устройствах мне нужно знать все, что храниться в таблице dev.

Насколько я понимаю при использовании INNER JOIN таблицы просто «склеиваются» по заданому «ON». но при такой склейке у меня получается что несколько полей таблицы имеют одинаковое имя. Подскажите, пожалуйста, как правильно написать запрос?

★★★

Используй полное имя столбца в виде ИмяТаблицы.ИмяСтолбца.

LongLiveUbuntu ★★★★★
()
Ответ на: Может, алиасы? от SOmni

это не совсем то что нужно, но по вашему примеру, я написал следующий код:

SELECT * FROM sau s
        INNER JOIN dev d1 ON s.sensor_id=d1.dev_id
        INNER JOIN dev d2 ON s.ou_id=d2.dev_id
        WHERE s.id='1';
но по итогу я получаю таблицу, которая почти удовлетворяет моим требованиям. есть только одно НО: у нее несколько столбцов с одинаковым именем, и поэтому я не знаю как к ним обращаться через php после фетч_эррэй"я

disee ★★★
() автор топика
Ответ на: Может, алиасы? от SOmni

кстати похоже я сразу не совсем понял ваш пример. Он тоже подходит, но имеется такая же проблема...

disee ★★★
() автор топика
Ответ на: комментарий от disee

как к ним обращаться через php после фетч_эррэй"я

Тоже алиасы:
SELECT s.id as s_id, d1.dev_id as dev_id_1, d2.dev_id as dev_id_2 и так далее перечислить все поля, которые нужны.

SOmni ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.