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

问题描述 投票:0回答:2

您好,我提供了下表,我必须获得客户Meier的所有订单。

具有表cid和名称的表“ Customer”:

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

表格

“订单”的Oid,Did,Date和Cid列:

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"

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

enter image description here

sql left-join inner-join right-join
2个回答
0
投票

其中customer.name ...应该可以。您在使用field.table而不是table.field

的查询中遇到了一些类似的错误

0
投票

最好的方法是使用别名。因此,您的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"

因此表名称在表属性之前。

© www.soinside.com 2019 - 2024. All rights reserved.