“b”在SQL查询中的含义是什么?

时间:2015-09-15 16:38:39

标签: mysql sql

在以下查询中:

$query = "SELECT 1 FROM (SELECT pass 
                         FROM table_name 
                         WHERE ssid=$ssid) b 
          WHERE pass='$pwd'";

ssid) b WHERE pass='$pwd';在原始查询中的含义是什么?

2 个答案:

答案 0 :(得分:4)

SELECT 1 FROM (SELECT pass FROM table_name WHERE ssid=$ssid) b WHERE pass='$pwd'

同样如下:

SELECT 1 FROM (SELECT pass FROM table_name WHERE ssid=$ssid) AS b WHERE pass='$pwd'

b是子查询的别名。然后在外部查询中,您可以引用如下列:

SELECT b.pass FROM (SELECT pass FROM table_name WHERE ssid=$ssid) AS b 

请参阅manual

  

子查询在SELECT语句的FROM子句中是合法的。实际上   语法是:

     

SELECT ... FROM(子查询)[AS]名称......

     

[AS] name子句是必需的,因为FROM中的每个表都是如此   子句必须具有名称。子查询选择列表中的任何列都必须   有独特的名字。

答案 1 :(得分:0)

它只是用作嵌套选择语句的标识符。它有效地将该查询的结果分配给名为“b”的虚构表,因此您可以像处理普通表一样处理该嵌套语句。