我在网上找到了下面的mysqli查询。它展示了前三名的汽车
//create conection with mysql database.
$conn = mysqli_connect("localhost","root","","cars");
//query
$select = "SELECT ord.*, sum(amount) as amt from orders as ord GROUP BY id_car order by amt desc limit 0,3";
$data = mysqli_query($conn,$select);这个查询工作正常,但我希望有人能解释一下这个查询的第一部分:SELECT ord.*,
"ord“似乎是指订单,但它是否等同于说:SELECT * FROM orders??
见屏幕截图图像订单表中的表
发布于 2016-02-11 11:55:45
让我们把它分解:
( a)从名为ord的表中选择所有字段,这些字段将在c中定义)
SELECT ord.*,( b)选择列数量之和并将其命名为amt
sum(amount) as amt( c)为查询使用表订单,并为该表定义别名ord,请参见
from orders as ord发布于 2016-02-11 11:54:45
在查询中有orders as ord,这为orders表提供了orders表的“别名”,因此ord.*的意思是orders.*
在这个查询中,诚实是有点多余的,主要用于查询中有多个表时:)
对于此查询,只需执行以下操作:
$select = "SELECT *, sum(amount) as amt from orders GROUP BY id_car order by amt desc limit 0,3";发布于 2016-02-11 11:56:28
它与tableName中的select *相同,它将从table.But别名中获取表的所有列。使用别名是连接多个表的最佳实践。
因为您使用的是单个表,所以您也可以这样做。
SELECT *, sum(amount) as amt from orders as ord GROUP BY id_car order by amt desc limit 0,3https://stackoverflow.com/questions/35338544
复制相似问题