一、自连接
mysql有时在信息查询时需要进行对自身连接(自连接),所以我们需要为表定义别名。我们举例说明,下面是商品采购表,我们需要找到采购价格比惠惠高的所有信息。
SELECT b.*
from shopping as a,shopping as b
where a.name='惠惠'
and a.price<b.price
order by b.id
注意点:
- 别名 a,b虽然名称不同,但是同一个表,定义别名的目的是更方便在自身进行删选。
- 执行select通过(中间表)所得到的b.*,,就是最终结果。
二、ORDER BY 1, 2
含义:
sql语句中order by 1或者order by 2...order by N
其实1表示第一个栏位,2表示第二栏位;
依此类推,当表中只有2个栏位时,oder by 3就会出错,这个跟order by 列名没有什么区别,不过在特殊情况下还是很有用的.
注意:
ORDER BY ASC应该没有这样写法,ORDER BY 后面不是字段就是数字;
可以ORDER BY 1 ASC 或者ORDER BY COL1 ASC ;
ASC表示按升序排序,DESC表示按降序排序