Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.028 c
15-1173290878
lak/proxy/
2007-03-07 21:07
2007.04.01
знатокам CSS


11-1152342098
Maloric
2006-07-08 11:01
2007.04.01
Ошибка при использовании MHFontDialog


15-1173038445
Romm
2007-03-04 23:00
2007.04.01
PHP и MySQL срочно!


2-1173163205
Антоныч_ск
2007-03-06 09:40
2007.04.01
пути поиска bpl-файлов


2-1173464112
А.Брей
2007-03-09 21:15
2007.04.01
Смена шрифта на TPanel




   Наверх