Он работает, но я выбираю все столбцы. Может кто-нибудь объяснить мне, почему мой первый запрос не работает? Я не думаю, что мне нужно присоединиться. Если я получу какую-то помощь, это будет хорошо. Честно говоря, я никогда не видел ошибку раньше. Если он работает с SELECT *, я не понимаю, почему у меня возникают проблемы с выбором определенных столбцов.Попробуйте выбрать, но получить неоднозначную ошибку?
Это мои таблицы:
create table product
(
pdt# varchar(10) not null,
pdt_name varchar(30) not null,
pdt_label varchar(30) not null,
constraint product_pk primary key (pdt#));
create table orders
(
pdt# varchar(10) not null,
qty number(11,0) not null,
city varchar(30) not null
);
И эти значения
insert into product values ([111,chair,chr]);
insert into product values ([222,stool,stl]);
insert into product values ([333,table,tbl]);
insert into orders values ([111,22,Ottawa]);
insert into orders values ([222,22,Ottawa]);
insert into orders values ([333,22,Toronto]);
Вопрос заключается в следующем:
- гр. Перечислите все [ФДТ #, pdt_name, шт] когда заказ от [Оттава]
Я попытался:
SELECT pdt#, pdt_name, qty FROM orders, product WHERE city='Ottawa';
я получаю столбец неоднозначно определяется ошибка. Но когда я запускаю:
SELECT *, qty FROM orders, product WHERE city='Ottawa';
Выполняется, но я выбираю все столбцы. Может кто-нибудь объяснить мне, почему мой первый запрос не работает? Я не думаю, что мне нужно присоединиться. Если я получу какую-то помощь, это будет хорошо. Честно говоря, я никогда не видел ошибку раньше. Если он работает с SELECT *, я не понимаю, почему у меня возникают проблемы с выбором определенных столбцов.
Вам необходимо присоединиться. –
Правильный результат от @vkp, однако, в отношении того, почему запрос 1 не работает, потому что pdt # существует как в таблицах заказов, так и в продуктах. Вы можете исправить это, указав, в какой таблице вы хотите получить результат, например. orders.pdt #, pdt_name .. и т. д. –