繁体   English   中英

如何根据确定的值连接 sql 中的两个表?

[英]How to join two tables in sql according to a determined value?

我有以下表格,我必须得到客户 Meier 的所有订单。

具有 cid 和名称列的Customer表:

cid           name
-------------------------
13            M. Mueller
17            A. Meier
23            I. Schulze

具有 Oid、Did、Date 和 Cid 列的表Orders

Oid       Did       Date          Cid
--------------------------------------
3         7        2002-12-01     17
5         11       2003-04-27     23
7         5        2003-05-13     17
10        5        2003-09-01     13

我尝试过的是以下内容:

SELECT Oid.Orders, Did.Orders, Date.Orders, Cid.Orders,
FROM Orders
INNER JOIN Customer ON Cid.Orders = cid.Customer
WHERE name.Customer = "A. Meier"

但是有一个我找不到的语法错误。 在这种情况下我应该如何处理?

在此处输入图像描述

在哪里 customer.name... 应该做的伎俩。 您在使用 field.table 而不是 table.field 的查询中有几个类似的错误

最好的方法是使用别名。 因此,您的 select 语句应如下所示(我将使用别名 o 表示订单,使用 c 表示客户):

 SELECT * from Orders o inner join Customer c on c.cid=o.Cid where c.name='A. 
 Meier'

如果您想解决没有别名的问题(我不喜欢),您应该这样做:

 SELECT Orders.Oid, Orders.Did, Orders.Date, Orders.Cid,
 FROM Orders
 inner JOIN Customer ON Orders.Cid = Customer.cid
 where Customer.name = 'A. Meier'

所以表属性之前的表名。 并且要小心引号......“和'有不同的含义......它也会导致错误。请阅读这篇文章SQL中的单引号和双引号有什么区别?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM