什么语法如" v。*"在MySQL Query中意味着什么?

时间:2016-01-22 21:34:32

标签: php mysql

我有以下PHP代码,MySQL代码我无法理解:

$result = $conn->query("SELECT v.*, (select count(*) from $table2 where ParentSyncGuid=v.SyncGuid) children FROM $table2 v WHERE v.ParentSyncGuid IS NULL OR v.ParentSyncGuid = ''");

$ table2之前被定义为正确的MySQL表。

然而," v"不是任何变量,表格或任何我能理解的名称 - 有人可以解释上述查询吗?正在查询的表中有一些条目,其中有一些" root"条目,每个其他条目都有一个父级,最终链接回根条目,因此父/ id语法,上面的代码只是为了找到我理解的根元素...但我无法让它工作并且从未见过" v。"语法之前,并且找不到任何文档。

2 个答案:

答案 0 :(得分:5)

在SQL中有这个字符串:FROM $table2 v
现在可以使用别名v

访问该表

您可以使用*从所有已连接的表格中选择所有可用列 v.*仅使用表v

中的列

示例: 给出以下表格:
TableAa1a2 TableBa1b2

SELECT * FROM TableA JOIN TableB ON (...)

这将给出包含所有4列的结果集

SELECT TableA.* FROM  TableA JOIN TableB ON (...)

这将仅为列a1a2

提供结果集
SELECT v.* FROM  TableA v JOIN TableB ON (...)

这与上面完全相同,但别名为

另请参阅:http://www.w3schools.com/sql/sql_alias.asp

答案 1 :(得分:0)

请参阅SQL语句的"From $table2 v"部分。这为表提供了替代名称v。这称为别名。

如果写得完整,那就是"From $table2 AS v"

AS关键字是可选的,因此通常会被省略。