MySQL从订单ID获取客户的名称

时间:2015-01-25 19:26:26

标签: mysql sql join

如果有两个表,我需要客户的订单ID名称。

客户:

ID     Name
1      Jamal Wang
2      Omar Jan

订单:

╔═══════╦══════════╦═══════╗
║  ID   ║ CUSTOMER ║ VALUE ║
╠═══════╬══════════╬═══════╣
║ 34656 ║        1 ║    20 ║
║ 37345 ║        2 ║    25 ║
║ 38220 ║        1 ║    15 ║
║ 39496 ║        1 ║    38 ║
║ 41752 ║        1 ║     9 ║
║ 43734 ║        2 ║    20 ║

如果我有来自' Orders'

的客户ID,我想获取客户名称
SELECT Name FROM `Customer` 
INNER JOIN `Order`
ON Customer.id = Order.customer.
WHERE Customer.id=1

但它返回同一个客户4次,因为我有4个订单。 如何让它不返回基于"订单"但基于"客户"。 我需要订单ID中的客户名称。 请帮忙。

2 个答案:

答案 0 :(得分:0)

您不需要加入'订单'表格,如果您已经拥有客户ID。只需使用简单的选择:

SELECT Name FROM `Customer` 
WHERE ID=1

如果您想根据订单ID获取客户名称,则只应使用加入。

答案 1 :(得分:-1)

如上所述,在此特定查询中,您根本不需要订单表。

但是,如果您想保留现有查询并且只获取名称​​一次(这是您的问题),那么只需将DISTINCT关键字添加到现有查询中:

SELECT DISTINCT name
FROM customer
INNER JOIN order ON customer.id = order.customer
WHERE customer.id = 1;

以下是SQL Fiddle示例。