我有两张桌子:
一个表包含不同的笔记本电脑规格
laptop:
|partNumber|picture|laptopName|laptopProcessor|visibility|
..........................................................
|AB00001 |pic1 |lenovo.. |intel core I5 |1 |
|AB00002 |pic2 |samsung |AMD semprom 3.8|1 |
另一张桌子是一张库存表,我有一个多店铺,每家商店都有不同价格的特定笔记本电脑
inventory:
|partNumber|shopName|price|qty|
...............................
|AB00001 |shop1 |554 |2 |
|AB00002 |shop1 |356 |4 |
|AB00002 |shop3 |400 |1 |
|AB00001 |shop4 |625 |5 |
|AB00002 |shop4 |345 |3 |
我想写一个查询,列出有关笔记本电脑的最佳价格,所以我写了这个:
SELECT laptop.partNumber, laptop.picture, laptop.laptopName, laptop.laptopProcessor,
inventory.MIN(price)
FROM laptop INNER JOIN inventory ON inventory.partNumber=laptop.partNumber
WHERE visibility="1"
所以基本上我想用最好的价格显示所有笔记本电脑,它没有价格查询工作,但我不能将这个MIN()函数添加到查询我想我错过了语法,但我不知道应该怎么做工作。请帮帮我。
答案 0 :(得分:1)
试试这个:
SELECT laptop.partNumber,
laptop.picture,
laptop.laptopName,
laptop.laptopProcessor,
MIN(inventory.price)
FROM laptop
INNER JOIN inventory ON inventory.partNumber = laptop.partNumber
WHERE visibility = "1"
GROUP BY laptop.partNumber,
laptop.picture,
laptop.laptopName,
laptop.laptopProcessor
答案 1 :(得分:1)
语法为MIN(column name)
,因此它应为MIN(inventory.price)
。但您还需要添加GROUP BY
子句,否则整个表格只会有一个结果。
然后,由于您想要通过笔记本电脑分组,请添加GROUP BY inventory.partNumber
。如果partNumber
不是laptop
表的主键,则还应添加其他列。
答案 2 :(得分:1)
您缺少Group BY
SELECT laptop.partNumber, laptop.picture, laptop.laptopName, laptop.laptopProcessor,
inventory.MIN(inventory.price)
FROM laptop INNER JOIN inventory ON inventory.partNumber=laptop.partNumber
WHERE visibility="1"
GROUP BY laptop.partNumber, laptop.picture, laptop.laptopName, laptop.laptopProcessor