繁体   English   中英

我想 select 从多个表中指定的所有数据,但它只有 select 一个数据

[英]I want to select all the data specified from multiple tables, but it only select one data

我写了一个 SQL 查询,我想通过它 select 从多个表中指定的所有相关数据,但是当我运行查询时它只检索单个数据,但我想 Z99938282F04071842Z 所有数据。 这是我的查询:

    $mysqli->query("SELECT projectDescription, location,budget,date, 
    SUM(ebudget) as expense_budget, SUM(totalAmount) as overtime_budget, 
    SUM(totalPrice) as material_budget FROM projecttable, expensestable, 
    overtimetable,dailyworkusage WHERE 
    expensestable.projectID=projecttable.projectID AND 
    overtimetable.projectID=projecttable.projectID AND 
    dailyworkusage.projectID=projecttable.projectID") or die($mysqli- 
    >error());

那是因为您缺少GROUP BY子句(在 MySQL 的非古代版本中,您会遇到语法错误)。 在查询末尾添加:

GROUP BY projectDescription, location, budget, date

此外,您确实希望使用显式连接而不是老式的隐式连接。 为表名使用别名也是一个好习惯。 这是您的查询的更新版本:

SELECT 
    projectDescription, 
    location,
    budget,
    date, 
    SUM(ebudget) as expense_budget, 
    SUM(totalAmount) as overtime_budget, 
    SUM(totalPrice) as material_budget 
FROM projecttable p
INNER JOIN expensestable e ON e.projectID = p.projectID  
INNER JOIN overtimetable o ON o.projectID = p.projectID 
INNER JOIN dailyworkusage d ON d.projectID = p.projectID
GROUP BY 
    projectDescription, 
    location,
    budget,
    date

请为所有这些列添加相关的表前缀(如果没有看到您没有显示的实际表结构,则无法告知)。

暂无
暂无

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

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