连接查询中的结果重复

时间:2015-04-25 12:42:23

标签: mysql join

这是我的表格:

Book (id ,title ,author ,isbn ,cost)

Orders(orderID ,orderDate ,user(manyToOne) ,orderItems(oneToMany))

OrderItem(id ,book(ManyToOne) ,quantity ,totalPrice)

这是查询:

enter image description here

结果如下:

enter image description here

但是,结果应该只有2 rows,只包含orderId 1 and 2而不是4行。

1 个答案:

答案 0 :(得分:0)

您没有正确加入订单。看起来它正在进行交叉连接。请参阅下面的正确sql。

select
  *
from
  orders o

  inner join orderitem oi on
    oi.orderID = o.orderID -- note the additional join here

  inner join book b on
    b.id = oi.book_id

您可以在联接中看到我已正确加入订单到orderitem。您可能需要更改ID,因为我不确定它应该是order_id,orderID还是ID。不知道你的架构。