php - 带有别名的 mysql 查询如何工作?

标签 php mysql sql

我是这个社区的新人,我需要使用一个从 mysql 数据库获取数据的查询,我有这个查询,但我需要添加一个新表,我不明白为什么查询有一个别名,我不知道它是如何工作的,有人可以帮助我吗? 这是我的查询:

SELECT ins.matricula, pe.nombres, pe.appaterno, pe.apmaterno, co.calleynum, co.colonia, co.municipio, co.telfijo, co.telcelular, pe.fechanac, pe.sexo, co.email, pe.institucion, tu.tnombres, tu.tappaterno, tu.tapmaterno, tu.direccion, tu.telefono, ins.fechains, ins.niveledu, ins.fechaini, ins.horario 
FROM Inscripciones ins 
LEFT JOIN Perfiles pe 
       ON pe.idperfil=ins.idperfil 
LEFT JOIN Contactos co 
       ON co.idperfil = pe.idperfil 
LEFT JOIN Tutores tu 
       ON tu.matricula = ins.matricula 
WHERE pe.idperfil='$var'

我已经阅读了 mysql 文档,但我不明白它是如何工作的。

最佳答案

在MySQL中,可以声明一个“别名”来简化以后的查询。 通常,这用“AS”运算符表示,但也可以在不使用“AS”的情况下声明 - 正如您的示例中所示。

在您的示例中:

SELECT ins.matricula, {...}
FROM Inscripciones ins {...}

ins 设置为“Inscripciones”表的别名。 这允许您在整个查询中使用 ins,而不是键入“Inscripciones”。这可以在 SELECT 语句中看到。 需要记住的一点 - SQL 中的别名可以在首次使用后声明。在您的示例中就是这种情况,其中 SELECT 在您实际将 ins 声明为 Inscripciones 的别名之前获取 ins.matricula 。 有时这似乎违反直觉,但我保证如果您稍微尝试一下就会有意义。

我发现包含“AS”不太含糊 - 这可能有助于在您读取/写入 SQL 查询时更有意义。 例如: ... FROM Inscripciones AS ins

需要明确的是,使用别名不会改变查询的结果,但可以帮助您编写更清晰的查询,因为您不必每次使用表名时都重新编写表名。

关于php - 带有别名的 mysql 查询如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46010770/

相关文章:

php - SQL 请求不按预期工作

mysql - 如何在单个查询中获取一列的值并更新另一列?

sql - ASP.Net MVC3 SQL 连接字符串

php - HTTP header "Content-type: multipart/mixed"导致 "400 Bad request"

PHP - MySQL 数据库中编码错误的土耳其语字符

php - 从 HTML 表单运行 ruby​​ 脚本

mysql - 如何对 MySQL 数据库表执行此查询?

允许对 JSON 数据进行类似 SQL 查询的 Javascript 库?

sql - 如何在 Oracle SQL 中获取自 1970 UTC 以来的毫秒时间戳?

php - 在也是子域的共享主机上运行 Zend Framework 应用程序