Получение данных из нескольких таблиц в MySQL с использованием объединений приводит к неправильным данным

0

Мне нужно выбрать код клиента и продукта и дату, когда был сделан заказ, но у меня возникли проблемы с заказами на объединение.

Изображение 174551

Мой выбор SQL:

select c.customerNumber, p.productCode, o.orderDate as data_compra
    from customers as c inner join orders as o
    inner join products as p
    where p.productCode =
                any (
                        select p2.productCode from products as p2
                        inner join orders as o
                        inner join orderdetails as odt
                        where o.orderNumber = odt.orderNumber and
                        p2.productCode = odt.productCode
                    )
    and o.orderNumber = 
                any (
                        select o2.orderNumber from orders as o2
                        inner join orderdetails as odt
                        where o.orderNumber = odt.orderNumber and
                        p.productCode = odt.productCode
                    )
Теги:

2 ответа

0
Лучший ответ

Два простых объединения должны делать то, что вы хотите:

select
    c.customerNumber,
    d.productCode,
    o.orderDate
  from customer c
  join orders o on o.customerNumber = c.customerNumber
  join orderdetails d on d.orderNumber = o.orderNumber
  • 0
    Спасибо за помощь.
0

В коде, который вы запрашиваете, выполните внутреннее объединение двух таблиц, но не указав связь. Вам нужно сделать так, чтобы SQL мог связывать и сопоставлять строки в каждой таблице.

Вы делаете это с помощью ключевого слова ON.

Я предлагаю вам посмотреть это видео и прочитать эту статью, прежде чем продолжить

  • 0
    Спасибо за советы. я проверю

Ещё вопросы

Сообщество Overcoder
Наверх
Меню