在以下查询中:
$query = "SELECT 1 FROM (SELECT pass
FROM table_name
WHERE ssid=$ssid) b
WHERE pass='$pwd'";
ssid) b WHERE pass='$pwd';
在原始查询中的含义是什么?
答案 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”的虚构表,因此您可以像处理普通表一样处理该嵌套语句。