Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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/1/database/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选择位置,然后再次选择_Mysql_Database - Fatal编程技术网

mysql选择位置,然后再次选择

mysql选择位置,然后再次选择,mysql,database,Mysql,Database,我有两张顾客桌和顾客订单。我正在尝试使用customer表中的customer\u ID来选择客户的订单 SELECT * FROM Customer_orders WHERE Customer_ID = SELECT ID FROM Customers WHERE Customer_name = 'John Doe' 此代码不起作用。我该怎么做?您需要连接这两个表,然后查询您需要的内容。像这样: SELECT co.* FROM Customer_orders co INNER JOIN

我有两张顾客桌和顾客订单。我正在尝试使用customer表中的customer\u ID来选择客户的订单

SELECT * FROM Customer_orders WHERE Customer_ID = SELECT ID FROM Customers WHERE Customer_name = 'John Doe'

此代码不起作用。我该怎么做?

您需要连接这两个表,然后查询您需要的内容。像这样:

SELECT co.* 
FROM Customer_orders co 
INNER JOIN Customers c ON co.Customer_ID = c.ID 
WHERE c.Customer_name = 'John Doe';

您需要连接这两个表,然后查询您需要的内容。像这样:

SELECT co.* 
FROM Customer_orders co 
INNER JOIN Customers c ON co.Customer_ID = c.ID 
WHERE c.Customer_name = 'John Doe';
您可以使用联接方法(内部/左侧)甚至子查询(但不建议在此问题上使用此方法)

这里举个例子

内连接

SELECT cust_order.* FROM Customer_orders cust_order, Customers cust WHERE cust_order.Customer_ID  = cust.ID AND  cust.Customer_name = 'John Doe'
左连接

SELECT cust_order.* FROM Customer_orders cust_order LEFT JOIN Customers cust ON cust_order.Customer_ID  = cust.ID WHERE cust.Customer_name = 'John Doe'
子查询

SELECT * FROM Customer_orders WHERE Customer_ID   =  (SELECT ID FROM Customers WHERE Customer_name = 'John Doe')
如果要使用子查询,请确保表客户上只有一个ID,或者如果它有多个ID,则可以使用“IN”而不是“=”

您可以使用联接方法(内部/左侧)甚至子查询(但不建议在此问题上使用此方法)

这里举个例子

内连接

SELECT cust_order.* FROM Customer_orders cust_order, Customers cust WHERE cust_order.Customer_ID  = cust.ID AND  cust.Customer_name = 'John Doe'
左连接

SELECT cust_order.* FROM Customer_orders cust_order LEFT JOIN Customers cust ON cust_order.Customer_ID  = cust.ID WHERE cust.Customer_name = 'John Doe'
子查询

SELECT * FROM Customer_orders WHERE Customer_ID   =  (SELECT ID FROM Customers WHERE Customer_name = 'John Doe')

如果要使用子查询,请确保表Customers上只有一个ID,或者如果它有多个ID,则可以使用“IN”而不是“=”

另一个答案有点复杂-它可能会尝试向您展示一个可以解决更难问题的解决方案

首先,它从Customer表查询johndoe的ID。 其次,它查询Customer_orders表中Customer_id等于id的所有列

我的解决方案很简单:

SELECT * FROM Customer_orders WHERE Customer_ID in (SELECT ID FROM Customers WHERE Customer_name = 'John Doe')
or
SELECT * FROM Customer_orders WHERE Customer_ID = (SELECT ID FROM Customers WHERE Customer_name = 'John Doe')
通常,ID是Customer表的主键,Customer\u ID应该是Customer\u订单的键索引

使用键索引对单个表进行两次查询比使用联接操作的查询要快,尤其是当表有太多行时


谢谢蒂姆纠正我的语法。我非常感激。我的英语不好。

另一个答案有点复杂-它可能会试图向你展示一个可以解决更难问题的解决方案

首先,它从Customer表查询johndoe的ID。 其次,它查询Customer_orders表中Customer_id等于id的所有列

我的解决方案很简单:

SELECT * FROM Customer_orders WHERE Customer_ID in (SELECT ID FROM Customers WHERE Customer_name = 'John Doe')
or
SELECT * FROM Customer_orders WHERE Customer_ID = (SELECT ID FROM Customers WHERE Customer_name = 'John Doe')
通常,ID是Customer表的主键,Customer\u ID应该是Customer\u订单的键索引

使用键索引对单个表进行两次查询比使用联接操作的查询要快,尤其是当表有太多行时


谢谢蒂姆纠正我的语法。我非常感激。我的英语不好。

Hi Xiong的可能复本,欢迎来到SO。我建议对你的答案进行编辑,以稍微提高其可读性,但其中缺少一点:解释你的答案为什么/如何解决问题。提供一些关于写出好答案的建议;你认为你可以编辑你的帖子,对你的问题做一些额外的解释吗?嗨,熊,欢迎来到SO。我建议对你的答案进行编辑,以稍微提高其可读性,但其中缺少一点:解释你的答案为什么/如何解决问题。提供一些关于写出好答案的建议;你认为你可以编辑你的帖子,对你的问题做一些额外的解释吗?