我正在构建一个Xojo应用程序,并且遇到了我想要执行的查询的问题。
我需要导出保存在数据库中的说明书
它有3个表,一个包含页面,一个包含所需的项目和一个项目数据库
现在我需要从2个表中获得结果
PartsPerPage和Parts
PartsPerPage
ID - SetID - Page - PartID - Parts
1 - 1 - 1 - 37878 - 5
2 - 1 - 1 - 23444 - 6
3 - 1 - 1 - 34534 - 11
4 - 1 - 2 - 37878 - 4
零件
ID - Name - Size - Image - Stock - ColorID - SortCode
37878 - Blabla - 6 - picture - 56 - 12 - box1
23444 - Blabla - 9 - picture - 12 - 11 - box1
34534 - Blabla - 3 - picture - 66 - 101 - box2
37878 - Blabla - 2 - picture - 33 - 4 - box5
现在我想获得所有使用的项目的列表
ID - Parts - Name - Size - Image - ColorID
37878 - 9 - Blabla - 6 - Picture - 12
23444 - 6 - Blabla - 9 - Picture - 11
34534 - 11 - Blabla - 3 - Picture - 101
我尝试了一些Sql查询,但没有成功
这只给了我一条记录,但应该是155条记录
SELECT DISTINCT
PartsPerPage.PartID,
SUM(PartsPerPage.Parts),
Parts.Name,
Parts.Discription,
Parts.Size, Parts.image,
Parts.ColorID
FROM PartsPerPage JOIN Parts ON Parts.ID = PartsPerPage.PartID
WHERE PartsPerPage.SetID = 1
当我只做一个简单的查询时,如果我做了记录计数,我会得到155条记录,但是没有得到结果
SELECT DISTINCT
PartsPerPage.PartID
FROM PartsPerPage
WHERE PartsPerPage.SetID = 1
任何帮助都会很棒
答案 0 :(得分:2)
据推测,你打算:
SELECT ppp.PartID,
SUM(PartsPerPage.Parts),
p.Name, p.Discription, p.Size, p.image, p.ColorID
FROM PartsPerPage ppp JOIN
Parts p
ON p.ID = ppp.PartID
WHERE ppp.SetID = 1
GROUP BY ppp.PartID, p.Name, p.Discription, p.Size, p.image, p.ColorID;
需要GROUP BY
,因为您有SUM()
。 SUM()
将您的查询转换为聚合查询 - 没有GROUP BY
,只返回一行。
答案 1 :(得分:1)
您缺少GROUP BY
子句
SELECT
PartsPerPage.PartID,
SUM(PartsPerPage.Parts),
Parts.Name,
Parts.Discription,
Parts.Size, Parts.image,
Parts.ColorID
FROM PartsPerPage JOIN Parts ON Parts.ID = PartsPerPage.PartID
WHERE PartsPerPage.SetID = 1
GROUP BY PartsPerPage.PartID;