首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带并的MySQL误差

带并的MySQL误差
EN

Stack Overflow用户
提问于 2017-09-11 13:12:29
回答 2查看 60关注 0票数 0

下面的sql查询有什么问题?

代码语言:javascript
复制
select itemname from Item where itemid 
in

((select ItemID
 FROM Delivery NATURAL JOIN Supplier
 WHERE SupplierName = 'Nepalese Corp.')

 union

 (select ItemID
 FROM Sale NATURAL JOIN Department
 WHERE DepartmentName = 'Navigation'))

我在这个网站上看到了另一篇文章,它建议删除两个联合集上的内括号,并给第一个联合集一个别名。我试过了,MYSQL在下面所示的行中显示了x,但是查询运行得很好。我的问题是发生了什么?

代码语言:javascript
复制
select itemname from Item where itemid 
in

(select ItemID as id
 FROM Delivery NATURAL JOIN Supplier
 WHERE SupplierName = 'Nepalese Corp.'

 union

 select ItemID .          //shows an x at this line
 FROM Sale NATURAL JOIN Department
 WHERE DepartmentName = 'Navigation')
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-11 13:18:23

代码语言:javascript
复制
select itemname from Item 
where itemid in
(
    select ItemID 
    FROM Delivery 
    NATURAL JOIN Supplier WHERE SupplierName = 'Nepalese Corp.'
    union
    select ItemID
    FROM Sale 
    NATURAL JOIN Department WHERE DepartmentName = 'Navigation'
 )

你可以试试上面的代码。

只要去掉不必要的括号就可以解决你的问题。

票数 1
EN

Stack Overflow用户

发布于 2017-09-11 13:40:26

您可以尝试将内部结果连接到主表。

代码语言:javascript
复制
 select itemname from Item as t1 join
    (select distinct ItemID
     FROM Delivery NATURAL JOIN Supplier
     WHERE SupplierName = 'Nepalese Corp.'
    union
    select distinct ItemID
     FROM Sale NATURAL JOIN Department
     WHERE DepartmentName = 'Navigation') as t2 on t1.ItemID=t2.ItemID
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46156597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档