SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 24.10.2017 18:23:32

Динара
Участник
Зарегистрирован: 24.10.2017
Сообщений: 8

Запрос sql

При реализации данного запроса возникает ошибка " Error Code: 1066. Not unique table/alias: 'tab_order' ". В чем дело, подскажите, пожалуйста?


select tab_client.IDclient, tab_client.name_client, tab_client.patronymic_client, tab_client.surname_client, tab_order.IDorder, tab_product.IDproduct, tab_product.mark_product, tab_product.type_product
from tab_client inner join tab_order on tab_client.IDclient = tab_order.IDclient,
     tab_order inner join tab_product_order on tab_order.IDorder = tab_product_order.IDorder,
     tab_product inner join tab_product_order on tab_product.IDproduct = tab_product_order.IDproduct
where (tab_client.IDclient = '2')
group by tab_product.mark_product
order by tab_product.type_product;

Неактивен

 

#2 24.10.2017 18:32:07

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Запрос sql

Вы указываете tab_order два раза в FROM, отсюда и ошибка. Если Вам действительно нужно указать его 2 раза,
то ставьте алиасы

from
    tab_client inner join tab_order as taborder1 on tab_client.IDclient = tab_order.IDclient,
    tab_order as taborder2 inner join tab_product_order on tab_order.IDorder = tab_product_order.IDorder


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 24.10.2017 18:47:51

Динара
Участник
Зарегистрирован: 24.10.2017
Сообщений: 8

Re: Запрос sql

Изменила, теперь появилась другая ошибка 'Error Code: 1054. Unknown column 'tab_order.IDorder' in 'field list''
Что я делаю не так?

select tab_client.IDclient, tab_client.name_client, tab_client.patronymic_client, tab_client.surname_client, tab_order.IDorder, tab_product.IDproduct, tab_product.mark_product, tab_product.type_product
from tab_client inner join tab_order as taborder1 on tab_client.IDclient = taborder1.IDclient,
    tab_order as taborder2 inner join tab_product_order as tro1 on taborder2.IDorder = tro1.IDorder,
    tab_product_order as tro2 inner join tab_product on tro2.IDproduct = tab_product.IDproduct
where (tab_client.IDclient = '2')
group by tab_product.mark_product
order by tab_product.type_product;

Неактивен

 

#4 24.10.2017 19:00:16

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Запрос sql

MySQL подсказывает: Вы выбираете поле, которого нет в таблице. Раз уж вы поименовали в FROM таблицу
tab_order двумя алиасами taborder1 и taborder2, то в SELECT Вам тоже нужно выбирать через эти алиасы.
То есть в SELECT либо taborder1.IDorder, либо taborder2.IDorder
, какой именно Вам виднее.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 24.10.2017 19:18:16

Динара
Участник
Зарегистрирован: 24.10.2017
Сообщений: 8

Re: Запрос sql

Спасибо большое)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson