首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解释一个显示前3辆汽车的MySQLi查询

解释一个显示前3辆汽车的MySQLi查询
EN

Stack Overflow用户
提问于 2016-02-11 11:48:38
回答 3查看 56关注 0票数 0

我在网上找到了下面的mysqli查询。它展示了前三名的汽车

代码语言:javascript
复制
//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??

见屏幕截图图像订单表中的表

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-02-11 11:55:45

让我们把它分解:

( a)从名为ord的表中选择所有字段,这些字段将在c中定义)

代码语言:javascript
复制
SELECT ord.*,

( b)选择列数量之和并将其命名为amt

代码语言:javascript
复制
sum(amount) as amt

( c)为查询使用表订单,并为该表定义别名ord,请参见

代码语言:javascript
复制
from orders as ord
票数 0
EN

Stack Overflow用户

发布于 2016-02-11 11:54:45

在查询中有orders as ord,这为orders表提供了orders表的“别名”,因此ord.*的意思是orders.*

在这个查询中,诚实是有点多余的,主要用于查询中有多个表时:)

对于此查询,只需执行以下操作:

代码语言:javascript
复制
$select =  "SELECT *, sum(amount) as amt from orders GROUP BY id_car order by amt desc limit 0,3";
票数 2
EN

Stack Overflow用户

发布于 2016-02-11 11:56:28

它与tableName中的select *相同,它将从table.But别名中获取表的所有列。使用别名是连接多个表的最佳实践。

因为您使用的是单个表,所以您也可以这样做。

代码语言:javascript
复制
SELECT *, sum(amount) as amt from orders as ord GROUP BY id_car order by amt desc limit 0,3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35338544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档