2016-02-11 28 views
0

我在互联网上发现了以下mysqli查询。它显示前3名销售的汽车解释显示排名前3的汽车的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 ??

见截图图像 orders table

+0

从订单表中获取所有字段。 – rahul

回答

0

让我们来分析一下:

a)从表命名ord各个领域,这将在C中定义)

SELECT ord.*, 

B)柱量的选择总和并将其命名为amt

sum(amount) as amt 

c)使用表命令进行查询并为该表定义别名ord,请参阅a)

from orders as ord 
+0

感谢maxhb的详细解释:-) – fendert12

2

在查询表有orders as ord这给订单表的orders表的“变体”,所以ord.*意味着orders.*

它是在一个位冗余这个查询是诚实的,主要用于查询中如果有多人表:)

对于此查询,你可以简单地做:

$select = "SELECT *, sum(amount) as amt from orders GROUP BY id_car order by amt desc limit 0,3"; 
0

与select * from tableName相同,它将从table.But中提取所有列。但别名为该表提供了名称。使用别名Name是加入多个表的最佳实践。

由于您使用的是单个表格,您也可以这样做。

SELECT *, sum(amount) as amt from orders as ord GROUP BY id_car order by amt desc limit 0,3