gpt4 book ai didi

php - "s."和 "n"在此 mysql 语句中是什么意思/做什么?

转载 作者:太空宇宙 更新时间:2023-11-03 11:55:42 25 4
gpt4 key购买 nike

我目前正在做一个需要我看别人代码的项目,我对其中的一些东西还是很陌生,有些东西我不太明白,所以希望有人能解释一下代码实际上在做什么或者它意味着什么?

这里是有问题的陈述:

select s.* from $tableA n, $tableB s where
n.id='$send' and
n.status='$status' and
n.field=s.id";

我知道从根本上说,这条语句是从 tableA 和 tableB 中获取所有字段,我只是不确定 s. 做了什么或 n 做了什么陈述?它们只是作为标识符存在还是我以这种方式完全错误?如果需要,我很乐意提供更多信息。

最佳答案

它们称为 SQL 表别名,基本上是您为表提供的临时名称,以便在您使用表名指定列时具有更好的可读性。

在你的例子中

SELECT s.* FROM $tableA n, $tableB s
WHERE n.id='$send'
AND n.status='$status'
AND n.field=s.id ;

相同
SELECT $tableB.* FROM $tableA, $tableB
WHERE $tableA.id='$send'
AND $tableA.status = '$status'
AND $tableA.field = $tableB.id ;

但显然它更容易阅读。

表别名在您连接更多表时更加有用,并且在您进行自连接时绝对是必须的。

语法说明:

在为表设置别名时,您可以使用也可以不使用 AS 关键字。

SELECT table_name AS alias

相同
SELECT table_name alias

虽然它有时更长,但它会带来更好的可读性(例如,在一个大而困惑的查询中,大的 AS 更容易被发现:)

关于php - "s."和 "n"在此 mysql 语句中是什么意思/做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32847428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com