我是 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/