Не уверен в правильности запроса

#sql

#sql

Вопрос:

Я хотел бы написать запрос на соединение sql, который извлекает номер продукта и номера поставщиков всех уникальных пар поставщиков, поставляющих один и тот же продукт, а также цены на их покупку.

Столбцы являются:

ПОСТАВЩИК (SUPNR, SUPNAME, SUPADDRESS, SUPCITY, SUPSTATUS)

ПРОДУКТ (PRODNR, ИМЯ ПРОДУКТА, ТИП ПРОДУКТА, ДОСТУПНОЕ КОЛИЧЕСТВО)

ПОСТАВКИ (SUPNR, PRODNR, ЦЕНА ПОКУПКИ, СРОК ПОСТАВКИ)

ЗАКАЗ НА ПОКУПКУ (PONR, PODATE, SUPNR)

PO_LINE (ПОНР*,* ПРОДНР, КОЛИЧЕСТВО)

ПРИМЕЧАНИЕ: (первичные ключи выделены жирным шрифтом, внешние ключи выделены курсивом жирным шрифтом

мой код таков:

 SELECT S1.SUPNR, S2.SUPNR, S2.PRODNR, S2.PURCHASE_PRICE FROM SUPPLIES S1, SUPPLIES S2 WHERE S1.SUPNR gt; S2.SUPNR  

Это правильный вопрос?

Комментарии:

1. Если вы хотите написать объединение, напишите ОБЪЕДИНЕНИЕ. Синтаксис TableA, TableB устарел уже более 25 лет назад.

2. Но все же этот синтаксис широко используется в облаке, особенно для хранения данных sqls, например Aws redshift. Это правда, что здесь это не рекомендуется

Ответ №1:

Я думаю, вам просто нужно добавить PRODNR

 SELECT S1.SUPNR, S2.SUPNR, S2.PRODNR,   S2.PURCHASE_PRICE  FROM SUPPLIES S1 join SUPPLIES S2  On S1.SUPNR gt; S2.SUPNR and  S1.Prodnr=s2.prodnr  

Комментарии:

1. это дает мне ошибку. я добавил отдельный ВЫБОР ОТДЕЛЬНЫХ S1.SUPNR, S2.SUPNR, S2.PRODNR, S2.ЦЕНА ПОКУПКИ ИЗ ПОСТАВОК S1, ПОСТАВОК S2, ГДЕ S1.SUPNR gt; S2.SUPNR

2. В чем ошибка

3. Я исправил ошибку. вы пропустили S2 перед PRODNR. Спасибо