mysql选择位置,然后再次选择
我有两张顾客桌和顾客订单。我正在尝试使用customer表中的customer\u ID来选择客户的订单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
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。我建议对你的答案进行编辑,以稍微提高其可读性,但其中缺少一点:解释你的答案为什么/如何解决问题。提供一些关于写出好答案的建议;你认为你可以编辑你的帖子,对你的问题做一些额外的解释吗?