[英]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.