sql - sql执行3个自然连接然后联合然后一起
问题描述
我想自然加入 3 次(Product
是库存),然后将它们联合在一起,但以下内容没有出现错误near "(": syntax error: (
,我想查看所有匹配项目的model
和price
。
(SELECT model, price FROM PC) NATURAL JOIN (SELECT model FROM Product WHERE maker='B')
UNION
(SELECT model, price FROM Laptop) NATURAL JOIN (SELECT model FROM Product WHERE maker='B')
UNION
(SELECT model, price FROM Printer) NATURAL JOIN (SELECT model FROM Product WHERE maker='B');
谁能帮忙?谢谢。
解决方案
三个表的联合然后到第四个的半连接呢?:
WITH T AS ( SELECT model, price FROM PC
UNION
SELECT model, price FROM Laptop
UNION
SELECT model, price FROM Printer )
SELECT *
FROM T
WHERE model IN ( SELECT model FROM Product WHERE maker = 'B' );
推荐阅读
- android - 您的 Android App Bundle 使用错误的密钥进行签名。确保您的 App Bundle 使用正确的签名密钥进行签名,然后重试:SHA1
- html - 在引导程序中设置内容的高度
- java - Gradle/Java:使用可执行的 Java 类生成资源
- keras - 使用 Tensorflow 序列 API 进行标注
- java - JavaFX DatePicker 在错误的位置打开 -Dsun.java2d.uiScale=1.0
- azure - 避免从 EventHub 并行消费相同的事件
- pine-script - 错误信息:该研究引用了太多的历史蜡烛(10001)
- php - 删除用户 cookie
- algolia - 有没有办法在 algolia 部分更新方法中更新数组值?
- php - docker-compose mysql_pdo 连接失败