MySQL中的表连接

MySQL中的表连接,mysql,Mysql,我有两张桌子要加入 它们共享orderNumber主键 一个表名为“订单明细”,另一个表名为“订单” 我试图从“orderdetails”表中查询productCode、quantityOrdered、priceEach和orderLineNumber 从“订单”表中,我需要状态和客户编号 我遇到的问题是,我需要找到3条带有3个特定订单号的记录 我可以查询我需要的所有数据,但我不能做的是将其限制为3个特定的订单号。。。我卡住了 我贴了一个ERD的链接 任何帮助都会很好 这是我试过的代码 SELE

我有两张桌子要加入

它们共享orderNumber主键

一个表名为“订单明细”,另一个表名为“订单”

我试图从“orderdetails”表中查询productCode、quantityOrdered、priceEach和orderLineNumber

从“订单”表中,我需要状态和客户编号

我遇到的问题是,我需要找到3条带有3个特定订单号的记录

我可以查询我需要的所有数据,但我不能做的是将其限制为3个特定的订单号。。。我卡住了

我贴了一个ERD的链接

任何帮助都会很好

这是我试过的代码

SELECT orderNumber
     ,  productCode
     , quantityOrdered
     , priceEach
     , orderLineNumber
     , orders.status
     , customerNumber 
  from orderdetails 
  join orders 
    on orderdetails.orderNumber = orders.orderNumber 
 where orderNumber =  (10330,10338,10194);
我一直得到一个订单号是不明确的错误

  • 如果两个表中都存在orderNumber或任何其他列,则应指向SELECT语句中的一个表:

    选择orders.orderNumber

  • WHERE语句应在关键字中使用,而不是ORDERNAME=(值1,值2):

    其中orders.orderNumber位于(103301033810194)


  • 如果必须从多个选项中选择,则使用IN子句。您的查询如下所示:

    SELECT OD.ORDERNUMBER
        , OD.PRODUCTCODE
        , OD.QUANTITYORDERED
        , OD.PRICEEACH
        , OD.ORDERLINENUMBER
        , O.STATUS
        , O.CUSTOMERNUMBER 
    FROM ORDERDETAILS OD
    INNER JOIN ORDERS O ON OD.ORDERNUMBER = O.ORDERNUMBER  
    WHERE OD.ORDERNUMBER IN (10330,10338,10194);
    

    始终限定所有列引用,而不仅仅是其中的一些。感谢您的帮助。我对SQL非常陌生,你所说的限定所有列引用是什么意思?在上面的查询中,status是我看到的一个正确限定列的示例。意思是orderDetails.productCode,orderDetails.priceEach…等等?我真的很感谢你的帮助,这对我来说太新鲜了,但我正在努力!!