Mysql 从两个表进行查询

Mysql 从两个表进行查询,mysql,Mysql,我必须合并我在mySQL中创建的两个表中的数据 我应该计算出每种产品在某一天到达的数量 我创建了以下查询: SELECT SUM(Amount) Shipment.Arrival_date, Shipment.Shipment_ID, `Product shipment`.Product_Code, `product shipment`.Shipment_ID, `product Shipment`.Amount FROM `Pr

我必须合并我在mySQL中创建的两个表中的数据

我应该计算出每种产品在某一天到达的数量

我创建了以下查询:

SELECT SUM(Amount) Shipment.Arrival_date, 
       Shipment.Shipment_ID, 
       `Product shipment`.Product_Code, 
       `product shipment`.Shipment_ID, 
       `product Shipment`.Amount 
FROM `Product shipment`, `shipment` 
WHERE `product Shipment`.Shipment_ID=`Product Shipment`.Product_code 
    AND Arrival_date = '2014-01-01
我的两个表分别称为装运和产品装运

此外,我的发货表中有一个描述到货日期的COLLMN,以及发货ID,它是我的产品发货表中发货ID的主键

在我的产品发货表中,发货ID由产品代码和产品数量描述

我的查询返回一个1064错误。有没有关于如何解决的建议?

试试这个:

SELECT SUM(ps.Amount),
    s.Arrival_date, 
    s.Shipment_ID, 
    ps.Product_Code, 
    ps.Shipment_ID, 
    ps.Amount 
FROM 
    `Product shipment` AS ps,
    `shipment` AS s
WHERE 
    ps.Shipment_ID=ps.Product_code 
    AND 
        s.Arrival_date = '2014-01-01'

请注意,您将ps表连接到ps表,这可能是您想要的行为,但您从未将ps连接到s

至少您在SUMAmount和Shipping.Arrival\u date之间缺少逗号,或者在同一地点缺少“as”。另外,WHERE子句中的到达日期缺少一个“--是在代码中,还是您忘记将其粘贴在这里了


此外,根据您的MySQL设置和运行MySQL的操作系统,table.column name大小写中的差异可能会导致问题。您有“Product Shipping”

查询中的聚合函数后缺少逗号。此外,在select字段中有一列试图求和,这几乎总是错误的

这应该起作用:

select
    sum(ps.Amount),
    // You forgot the comma after this aggregate function
    sh.Arrival_date, 
    sh.Shipment_ID, 
    ps.Product_Code, 
    ps.Shipment_ID
from 
    `Product shipment` ps
        join `shipment` sh
            on ps.Shipment_ID=.Product_code 
where
    Arrival_date = '2014-01-01'
group by
    sh.Arrival_date, 
    sh.Shipment_ID, 
    ps.Product_Code, 
    ps.Shipment_ID

此外,在类似的情况下,您确实应该提供帮助,当您的查询遇到您不理解的问题时,一些人会来帮助您-虽然这里的答案可能会解决问题,但我们希望您仍然没有真正理解您的错误。

请发布完整的错误消息1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解要使用的语法是否正确。Arrival_date、Shipping.Shipping_ID、Product Shipping.Product_Code、第1行的'Product s'和Arrival_date='2014-01-01您是否忘记了最后一个报价?Sumaum Shipping.Arrival_date是错误的。您可能想将SUMAmount写为sum\u amt、Shipping.Arrival\u date,还包括anthony提到的最后一个报价我能想象的唯一一件事是我忘记了一个团体报价?否则,我不确定。这一个只返回NULL:我对此很陌生,似乎没有发现错误。您正在使用两个表,但您从未加入这些表,您必须在where子句中说add ps.field=s.field。您所述的以下子句我不知道,恐怕我还没有学会它到底描述了什么?看看这个网站:我在OS/X上运行SQL。但是我发布了我使用的代码,但是在更正后,它成功地返回了我需要的内容,但是返回了空值:谢谢你的回复。不幸的是,我还是犯了同样的错误,我将试着读一读。。解决这个问题不应该太复杂!否则我必须问我的教授