如果有两个表,我需要客户的订单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中的客户名称。 请帮忙。
答案 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示例。