在mysql中使用连接从多个表中获取数据会导致错误的数据

zazmityj  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(207)

我需要选择客户和产品代码以及下订单的日期,但是我在加入订单时遇到了一些问题。

我的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
                    )
sh7euo9m

sh7euo9m1#

在代码中,您要求内部联接两个表,但没有指定关系。您需要这样做,sql才能关联和匹配每个表中的行。
您可以使用on关键字来执行此操作。
我建议你在继续之前先看这段视频并阅读这篇文章

xqkwcwgp

xqkwcwgp2#

两个简单的联接可以满足您的需要:

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

相关问题