Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.01;
Скачать: CL | DM;

Вниз

UNION query. SQL   Найти похожие ветки 

 
Шмель ©   (2007-01-10 10:30) [0]

Столкунулся со следующей проблемой не знаю как обойти!

Вот такой запрос
(SELECT o.*, i.* FROM orders as o, order_items as i WHERE o.order_id=i.order_id) UNION (SELECT o.*, i.* FROM orders_arch as o, order_items_arch as i WHERE o.order_id=i.order_id) ORDER BY time_create DESC LIMIT 50

в результате выдает результсэт где имена колонок стоят без o. i. а они обязательно должны быть (т.е. например мне должно вернуться, o.name, o.key, i.some,.... а возвращает просто name, key, some). Проблема здесь именно в UNION, если выполнять select"ы отдельно - то все ОК. В чем проблема разобраться не могу, в хелпе тоже ничего путного не нашел. Может кто сталкивался!

Вообщем, заранее спасибо


 
stone ©   (2007-01-10 10:32) [1]


> в результате выдает результсэт где имена колонок стоят без
> o. i. а они обязательно должны быть

тогда нужно присвоить колонкам псевдонимы


 
Шмель ©   (2007-01-10 10:40) [2]


> stone ©   (10.01.07 10:32) [1]


Это в смысле o.name as "o.name" и т.д... не катит - в табличках >50 полей


 
stone ©   (2007-01-10 10:44) [3]


> не катит - в табличках >50 полей

Чудес, к сожалению, не бывает.

ЗЫ. Тяжела и неказиста жизнь простого программиста...


 
Ega23 ©   (2007-01-10 10:47) [4]


> в табличках >50 полей


За все 7+ лет занятия БД видел только 1 таблицу в которой было около 35 полей.


 
Шмель ©   (2007-01-10 10:53) [5]


> stone ©   (10.01.07 10:44) [3]


Это bad


> Ega23 ©   (10.01.07 10:47) [4]


Ну сейчас пересчитал, там 45 полей, ошибся немножко:), так или иначе их там много....и ничего не выкинешь


 
Sergey13 ©   (2007-01-10 10:55) [6]

> [0] Шмель ©   (10.01.07 10:30)
> а они обязательно должны быть
А зачем, если не секрет?


 
Шмель ©   (2007-01-10 10:58) [7]


> А зачем, если не секрет?


Этот результсэт затем разбирается уже готовым отлаженным механизмом опираясь как раз на префиксы


 
evvcom ©   (2007-01-10 10:58) [8]

> [5] Шмель ©   (10.01.07 10:53)
> их там много....и ничего не выкинешь

Значит займись обезьяньей работой: перечислением всех o.* и i.*


 
ЮЮ ©   (2007-01-10 10:59) [9]


> Проблема здесь именно в UNION, если выполнять select"ы отдельно
> - то все ОК

Что, так и возвращает o.key, i.some ? Да уж, силен ЁSQL :)

Поле в orders и order_items всё-равно разные, не спутаешь.


 
Desdechado ©   (2007-01-10 11:13) [10]

> имена колонок стоят без o. i. а они обязательно должны быть
Странное желание.
Какой смысл в разборах по алиасам? Хотя, если есть одноименные, но разносмысловые поля в этих таблицах, тогда лучше им явные имена присвоить через AS. Но тогда не понятно, зачем делать разносмысловые имена одинаковыми?


 
Anatoly Podgoretsky ©   (2007-01-10 12:50) [11]

> Шмель  (10.01.2007 10:30:00)  [0]

Я не знаю имеет ли MySQL оптимизатор или нет, но в любом случае такой запрос на помойку, все поля должны быть перечислены ЯВНО и если ты жалуешься, что мол их много, то сейчас самый, самый момент задуматься, а ту ли я профессию выбрал, ведь в ней оказывается надо работать и учиться.



Страницы: 1 вся ветка

Текущий архив: 2007.04.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.058 c
2-1173536396
DemonP
2007-03-10 17:19
2007.04.01
создать приложение из 2х процессов со своим окном


1-1170090990
Kolan
2007-01-29 20:16
2007.04.01
Вопросы про bpl пакеты.


15-1171926876
MsGuns
2007-02-20 02:14
2007.04.01
Камеди клаб


3-1168937991
pavel_guzhanov
2007-01-16 11:59
2007.04.01
Как проверить содержимое поле типа DateTime на null


2-1173797536
Kolan
2007-03-13 17:52
2007.04.01
Можноли заставить компилятор сообщать о конкр. виде исключений?