|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
ОБЪЕДИНЕНИЕ 2х ЗАПРОСОВ
Нужно объединить два запроса с разным количеством записей.
Объединить так чтобы столбцы объеденились. Структура Код:
t1 install_id napr mm kod 9 12 0 10 9 12 20 210 9 12 60 420 t2 install_id napr mm kod 9 12 0 10 9 12 20 210 t1 и t2 хранят данные с разных датчиков! Нужно получить : Код:
napr1 mm1 kod1 napr2 mm2 kod2 12 0 10 12 0 10 12 20 210 12 20 210 12 60 420 null null null Mysql не признает Full Join. Пробовал писал следующим образом, но почему то запрос выдает всевозможные комбинации. Код:
SELECT a.napr as napr1,a.mm as mm1, a.kod as kod1,b.napr as napr2,b.mm as mm2,b.kod as kod2 FROM t1 as a LEFT OUTER t2 as b ON a.install_id=b.install_id WHERE a.install_id=10 UNION ALL SELECT a.napr as napr1,a.mm as mm1, a.kod as kod1,b.napr as napr2,b.mm as mm2,b.kod as kod2 FROM t1 as a RIGHT OUTER JOIN t2 as b ON a.install_id=b.install_id WHERE a.install_id IS NULL Как поступить чтоб объединить таблицы??? Последний раз редактировалось BarakudaX777, 03.03.2013 в 12:14. |
#2
|
||||
|
||||
Хотел сначала написать набросок, рассчитывая, что человек, знающий про декартово произведение, полный запрос сможет осилить и сам, но не смог. Написал полный запрос:
Код:
select u.install_id, u.napr, t1.mm mm1, t1.kod kod1, t2.mm mm2, t2.kod kod2 from (select install_id, napr from t1 union select install_id, napr from t2) u left join t1 on u.install_id = t1.install_id and u.napr = t1.napr left join t2 on u.install_id = t2.install_id and u.napr = t2.napr; Возник также вопрос: зачем одинаковые по структуре данные хранить в разных таблицах? |
#3
|
||||
|
||||
Через union запросы объединить можно. Только надо чтобы имена и последовательность полей в обоих выборках были идентичны.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#4
|
||||
|
||||
Код:
SELECT t1.napr, t1.mm, t1.kod, t2.napr, t2.mm, t2.kod FROM t1 LEFT JOIN t2 ON t2.install_id = t1.install_id AND t2.kod = t1.kod Цитата:
Хранить одни и те же данные в разных таблицах - нелогично. Гораздо правильнее в этой же таблице добавить поле "номер датчика" и по нему идентифицировать нужный датчик. Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Последний раз редактировалось Yurk@, 04.03.2013 в 11:44. |