mysql - 了解 SQL 别名

标签 mysql sql tsql alias

我是 SQL 新手。 我读过名为“Sams 在 10 分钟内自学 Oracle PL/SQL”的书。 我发现它非常有趣且易于理解。有一些关于别名的信息,但是当我开始做练习时,我遇到了一个我不知道其用途的别名。

这是引用 http://www.sql-ex.ru/这是数据库模式 http://www.sql-ex.ru/help/select13.php#db_1 , 万一。我正在使用计算机公司数据库,即数据库编号 1。任务是:

找到生产 PC 但不生产笔记本电脑的制造商。

解决方法之一:

SELECT DISTINCT maker
           FROM Product AS pcproduct
          WHERE type = 'PC' 
            AND NOT EXISTS (SELECT maker
                              FROM Product
                             WHERE type = 'laptop' 
                               AND maker = pcproduct.maker
                           );

问题是:为什么我们需要将product别名为pc_product并在子查询中进行比较'maker = pc_product.maker'?

最佳答案

因为在内部查询中有列,这些列的名称与外部查询中的列完全相同(因为您在那里使用同一个表)。

既然内层查询中有外层查询列,那肯定是有区别的,你要哪一列,不带别名,在内层查询中写maker = maker,就是总是正确的。

关于mysql - 了解 SQL 别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51593399/

相关文章:

php - 安全的 PHP 数据库配置

mysql - CakePHP 2.1 不能在本地主机上运行

mysql - SQL在同一语句中对不同列进行多次计数

php - 交换 3 行的行值

sql - oracle sql developer 编辑字段

sql - 为什么IsNull(LTrim(RTrim(Lower(null))),-1)是*?

sql - CROSS APPLY vs OUTER APPLY速度差

sql - 使用不确定数量的参数时如何避免动态 SQL?

php - 如何通过php和mysql中的用户类型重定向到不同的页面

MySQL,显示行和列之间的具体值