Mysql加入两个表得到相关数据

时间:2015-06-20 20:14:52

标签: php mysql sql database

我正在开发一个有两张桌子的网站。 订单发件人。 一个非常基本的结构如下,

orders
=======
order_id
shipper_id
customer_id
order_date
order_item

shipper
=========
shipper_id
shipper_name

我想列出所有订单及其托运人名称。例如

order_id | customer_id | order_date | order_item | shipper_name

订单表中有2行(两个订单),托运表中有3行(三个出货单)。

当我运行以下查询但它显示重复记录时。也就是说,2阶3次(2 * 3 = 6行)。为什么不只是2个订单和托运人信息?

SELECT * FROM orders o, shippers s ORDER BY order_date DESC

注意:此查询有效,但我不确定它的标准方法。

SELECT * FROM orders o, shippers s GROUP BY o.order_id ORDER BY order_date DESC

我听说过表连接。这种情况是使用连接吗?我开发了很多动态网站,但这个问题真的让我感到困惑。

1 个答案:

答案 0 :(得分:1)

加入可以在您的查询中使用,如下所示:

select orders.order_id, orders.customer_id, orders.order_date, orders.order_item, shipper.shipper_name from orders left join shipper on orders.shipper_id=shipper.shipper_id;

或者你可以使用如下:

select o.order_id, o.customer_id, o.order_date, o.order_item, s.shipper_name from orders o left join shipper s on o.shipper_id=s.shipper_id;