Php mysql最低值和最高值与连接
我有两张桌子:Php mysql最低值和最高值与连接,php,mysql,Php,Mysql,我有两张桌子: mysql>从master_产品中选择*; +----+-------+ |id |名称| +----+-------+ |1 |第1行| |2 |第2行| |3 |第3行| |4 |第4行| +----+-------+ 及 mysql>从产品中选择*; +----+---------+-------+ |id | masterid |成本| +----+---------+-------+ | 1 | 1 | 1000 | | 2 | 1 |
mysql>从master_产品中选择*;
+----+-------+
|id |名称|
+----+-------+
|1 |第1行|
|2 |第2行|
|3 |第3行|
|4 |第4行|
+----+-------+
及
mysql>从产品中选择*;
+----+---------+-------+
|id | masterid |成本|
+----+---------+-------+
| 1 | 1 | 1000 |
| 2 | 1 | 1050 |
| 3 | 2 | 1020 |
| 4 | 2 | 999 |
| 4 | 3 | 899 |
+----+-------+---------+
我想从产品表中选择成本最高和最低的主表中的所有产品,但当我使用mysql min、max函数时,它并没有返回所有产品,下面是我的查询:
选择master_products.id、name、MIN(成本)作为最低成本,MAX(成本)作为最高成本
来自master_products
加入product
上的product
masterid
=master\u产品
id
有没有办法通过一次查询得到这个结果?
期望输出:
+----+------------+------------+--------------+
|id |名称|最低成本|最高成本|
+----+-------------+------------+--------------+
|1 |第1排| 1000 | 1050|
|第2排第2排第999排第1020排|
|3 |罗3 | 899 | 899|
|4 |罗4 |那|那|
+----+-------+-----------+------+--------------+
使用左连接:
SELECT master_products.id, master_products.name, MIN(cost) AS LowestCost, MAX(cost) AS HighestCost
FROM master_products
LEFT JOIN `products` ON `products`.`masterid`= `master_products`.`id`
GROUP BY master_products.id
尝试在您的querySorry末尾添加
分组id
,但为什么“它不返回所有产品”?在您的示例中,我看到输出中的所有产品价格都是正确的。你能解释更多吗?问题在哪里?@VladimirGilevich这是他的“期望”输出没有实际输出我的坏。读得不好。然后已经有了关于这个问题的答案-左加入+按master_products.id分组(
:)