|
|
|
| не могу найти на форуме, а мне срочно надо.
MySQL мне упорно выдает произведеHие таблиц. хотя стоит условие WHERE.
select order_details.iddetail,
order_details.pack,
order_details.pack_lenght,
order_details.master_dom,
order_details.transfer_dom,
domains.type,
domains.domain,
domains.owner_handle,
domains.admin_handle,
domains.billing_handle,
domains.tech_handle,
domains.description,
domains.lenght from order_details, domains
WHERE (order_details.ido='200009'
and order_details.ido=domains.ido
and order_details.idm='12')
ORDER BY order_details.iddetail ASC
|
| |
|
|
|
|
|
|
|
для: elenaki
(09.12.2004 в 17:24)
| | опять пришлось "не мытьем, а катаньем". сделала два запроса. по одному запросу получаю 25 строк, из которых только 5 уникальные. по двум запросам - как надо, 5 строк.
все примеры из книг тоже не работали. ох уж мне эти сказки, ох уж мне эти сказочники! :) | |
|
|
|
|
|
|
|
для: elenaki
(09.12.2004 в 17:24)
| | Ага, он и должен возвращать произведение так как нет группировки (GROUP BY) по столбцу одной из базы... | |
|
|
|
|
|
|
|
для: elenaki
(09.12.2004 в 17:24)
| | Я тоже про GROUP BY сначала подумал...
Но тут как то хитро... Как связаны эти таблицы? Такое чувство, что не только по полю order_details.ido=domains.ido. Либо соответствие неоднозначно.
Сколько записей из таблицы order_details соответвует одной записи из таблицы domains уникальным ido?
И уникальны ли записи с ido в таблице domains? Т.е. может быть в таблице domains больше двух записей с одинаковым ido
Не могу воспроивести эти таблицы. На моих примерах все отрабатывает правильно. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(09.12.2004 в 22:45)
| | GROUP BY всё-равно прибъёт лишний вывод - будет выведено лишь столько записей скольким удовлетворяет таблица, содержащая поле по которому группируется выборка... | |
|
|
|
|
|
|
|
для: cheops
(09.12.2004 в 22:54)
| | в таблице domains может быть несколько записей с одинаковым ido (это номер ордера), idm (id заказчика), но разными idd (это номер домена) и iddetails (это детали заказа, относящиеся
к разным доменам одного заказчика, т.к. в одном заказе м.б. несколько доменов) GROUP BY order_details.iddetai выводит 5 записей с разным iddetails, но одинаковыми domain
GROUP BY domains.idd выводит разные domain, но одинаковые iddetails...
если получится, сейчас прицеплю схему таблиц
PS. эту базу не я строила, мне дали ее оптимизировать. там много дублирующейся информации. к тому же надо добавить еще 2 таблицы по схеме domains, только на dns на hosting. я, возможно, перейду в эту контору работать! :) моим новым шефом будет бельгиец надоели греки, которые и задачу толком поставить не могут. | |
|
|
|
|
|
|
|
для: elenaki
(10.12.2004 в 11:46)
| | Вроде воссоздал я Ваши таблицы. Правда меня пугает дублирование полей. Возможно, у Вас всё еще хуже... :)
Сначала уточним запрос: Нужно вывести детали заказа для каждого заказанного домена. И все это выбирается для одного заказчика.
Я предположил, что iddetails - это уникальное значения для номера домена (idd). Т.е. одному iddetails соответствует один idd. Так?
Тогда может и объединять эти таблицы по равенству iddetails?
Далее группируем по номеру домена idd. Ну и ставим условия idm равен id заказчика.
Примерно так:
select order_details.iddetail,
order_details.pack,
order_details.pack_lenght,
order_details.master_dom,
order_details.transfer_dom,
domains.type,
domains.domain,
domains.owner_handle,
domains.admin_handle,
domains.billing_handle,
domains.tech_handle,
domains.description,
domains.lenght from order_details, domains
WHERE (order_details.iddetail=domains.iddetail
and domains.idm='12')
GROUP BY domains.idd
|
PS: Если не получится, то можете реальные таблицы дать? Ну или похожие на реальные :)
Что то меня заинтересовала эта задача :)
>моим новым шефом будет бельгиец надоели греки, которые и задачу толком поставить не могут.
:)) | |
|
|
|
|
|
|
|
для: elenaki
(10.12.2004 в 11:46)
| | Упс, не увидел приложенный файл с таблицами. Ладно, спать пора. Завтра попробую еще посмотреть. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(11.12.2004 в 01:18)
| | спасибо. я не взяла с собой домой эту задачу. мне надо за выходные доделать поиск по статьям на другом сайте. клиент сначала сказал - не торопись, заплачу только в январе, а теперь звонит и спрашивает, готово ли? греческий вариант... | |
|
|
|