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

6jjcrrmo  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(375)

我有以下表格,我必须得到客户迈尔的所有订单。
Customer 包含cid和name列:

  1. cid name
  2. -------------------------
  3. 13 M. Mueller
  4. 17 A. Meier
  5. 23 I. Schulze

Orders 包含oid、did、date和cid列:

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

我尝试了以下方法:

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

但是有一个语法错误我找不到。这个案子我该怎么办?
在此处输入图像描述

iyr7buue

iyr7buue1#

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

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

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

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

所以表名在表属性之前。在引用的时候要小心……”和'有不同的含义。。。它也会导致错误。请阅读这篇文章在sql中单引号和双引号有什么区别?

zfciruhq

zfciruhq2#

其中customer.name。。。应该会成功的。在使用field.table而不是table.field的查询中,有几个类似的错误

相关问题