【发布时间】:2018-08-20 13:48:34
【问题描述】:
我正在从 Oracle 迁移到 MySQL,目前坚持使用 MINUS 操作转换查询。我知道,我必须使用左连接,但不知何故,我的查询并没有像在 Oracle 中那样给出确切的行。查询非常简单,在视图“V_*”上进行选择。
在甲骨文上:
select s.section, c.title from course c, v_staff_active s
minus
select section,title from v_rep_attended_by_section
在 Mysql 上,我将其转换如下:
select * from
( select s.section, c.title from course c, v_staff_active s) x
left join
( select section,title from v_rep_attended_by_section) y on x.section = y.section
where y.section is null;
但没有得到准确的结果或记录数。 你能帮帮我吗,因为我对 MySQL 非常陌生。
提前致谢。
【问题讨论】:
-
Minus 不能这样工作,您必须加入两个查询中的 all 列才能执行某些操作。此外,您的第一个查询似乎有一个交叉连接,这可能不是您想要的。我同意上面给出的@strawberry 评论。
-
谢谢蒂姆和草莓,正如我所说,我在 mysql 方面不太好,我使用链接stackoverflow.com/questions/21009748/…中的以下示例将查询更改为 mysql
-
@vikit DISTINCT 不是一个函数,所以我要小心不要从那个答案中拿走太多
-
谢谢 Strawbarry,你能给我一些重写代码的建议吗?
标签: mysql outer-join