首页 > 解决方案 > 基于匹配值添加列的查询

问题描述

我有两张桌子:钥匙和订单

表中,我只有订单 ID ,但我需要订单表上提供的更多详细信息,如电子邮件、姓名等。

如何将具有匹配订单 ID的键附加到另一个表?

键表

Key          Order ID
-----        --------
1234         0001
1235         0001
1532         0002
1602         0003
1802         0004

订单表

Email                   Order ID
-----                   --------
email1@example.com         0001
email1@example.com         0001
email2@example.com         0002
email3@example.com         0003
email4@example.com         0004

要求的结果:

Email                   Order ID       Key
-----                   --------     -------
email1@example.com         0001       1234
email1@example.com         0001       1235
email2@example.com         0002       1532
email3@example.com         0003       1602
email4@example.com         0004       1802

标签: mysqlsqlselect

解决方案


一个简单join的应该做的伎俩:

SELECT `email`, o.`order_id`, `key`
FROM   `orders` o
JOIN   `keys k ON o.`order_id` = k.`order_id`

如果可能有一个没有键的订单,你应该使用left join而不是join.


推荐阅读