трудно понять, как использовать самостоятельное соединение и его функции - PullRequest
0 голосов
/ 22 октября 2018

Это моя кодировка и значение, вставленное в таблицу.

CREATE TABLE provendor (
  prcode varchar (10), 
  prvendor varchar (5),
  prpricing decimal (9,2)
);

INSERT INTO provendor(prcode, prvendor, prpricing)
VALUES  
    ('PW-1001', 'P10', '500.00'),
    ('PQ-4570', 'P88', '35.00'),
    ('MM-120E', 'P67', '245.00'),
    ('MM-F12WR', 'P10', '1210.00'),
    ('PW-QZR-09', 'P10', '79.00'),
    ('PQ-4570', 'P10', '32.50'),
    ('MM-120E', 'P88', '242.00'),
    ('PW-1001', 'P45', '550.00'),
    ('MM-F12WR', 'P73', '1200.00'),
    ('PQ-4570', 'P67', '33.00'),
    ('MM-F12WR', 'P35', '1189.00'),
    ('PW-1001', 'P23', '510.00'),
    ('PQ-4570', 'P35', '36.00'),
    ('MM-120E', 'P23', '250.00');

Мне нужно выполнить запрос для получения product code, pricing и vendor code для product, которые предоставлены более чем одним поставщиком, и ваша запись должна быть отсортирована по коду продукта.

Это кодировка, которую я использовал для самостоятельного соединения

SELECT A.prvendor AS provendor1, B.prvendor AS provendor2, A.prcode
FROM  provendor A, provendor B
WHERE  prvendor1 > A.prcode
ORDER BY A.prcode;

Когда я ее запустил, ошибка скажет, что значения prvendor неоднозначны.Я не знаю как это решить

1 Ответ

0 голосов
/ 22 октября 2018

Вы не можете использовать псевдоним таблицы в предложении where, поэтому вам нужно

SELECT A.prvendor AS provendor1, B.prvendor AS provendor2, A.prcode
FROM  provendor A, provendor B
WHERE  A.prvendor > A.prcode
ORDER BY A.prcode;

Однако вы должны использовать синтаксис соединения ANSI, поскольку он более понятен для понимания, как это обычно рассматривается в качестве наилучшей практики:

SELECT A.prvendor AS provendor1,
       B.prvendor AS provendor2,
       A.prcode
FROM   provendor A
       JOIN provendor B
           ON A.prvendor > A.prcode
ORDER BY A.prcode;   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...