Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL从订单ID获取客户名称_Mysql_Sql_Join - Fatal编程技术网

MySQL从订单ID获取客户名称

MySQL从订单ID获取客户名称,mysql,sql,join,Mysql,Sql,Join,如果有两个表,我需要订单ID中的客户名称 客户: ID Name 1 Jamal Wang 2 Omar Jan 订单: ╔═══════╦══════════╦═══════╗ ║ ID ║ CUSTOMER ║ VALUE ║ ╠═══════╬══════════╬═══════╣ ║ 34656 ║ 1 ║ 20 ║ ║ 37345 ║ 2 ║ 25 ║ ║ 38220 ║ 1 ║ 15 ║

如果有两个表,我需要订单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 ║
当我从“订单”中获得客户ID时,我想获取客户名称

SELECT Name FROM `Customer` 
INNER JOIN `Order`
ON Customer.id = Order.customer.
WHERE Customer.id=1
但它返回相同的客户4次,因为我有4个订单。 我怎样才能使它不返回基于订单的客户,而是基于客户。 我需要订单ID中的客户名称。
请提供帮助。

如果您已经拥有客户ID,则无需加入“订单”表。只需使用简单的选择:

SELECT Name FROM `Customer` 
WHERE ID=1

如果希望根据订单ID获取客户名称,则只应使用join。

如前所述,在这个特定查询中,您根本不需要订单表

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

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

这里有一个例子。

就两次?这应该会返回4次。当你有客户id并且需要客户名称时,为什么要加入“订单”。您不需要orders表中的任何内容。您应该修改筛选器:SELECT*from Customer INNER JOIN Order ON Customer.ID=Order.Customer WHERE Order.ID=37345这会给您一行,当然会给您4次,因为Customer 1有4个订单。如果您希望它只显示一次,请使用{SELECT distinct}为什么会有人对此投反对票?我对他们提出的问题给出了有效的答案。