Форум: "Базы";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.042 c