2016-02-11 31 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