oracle 左外连接如果右表中有重复数据如何处理?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 左外连接如果右表中有重复数据如何处理?相关的知识,希望对你有一定的参考价值。

右表中如果重复,那么会出现多行

右表中如果没有,那么取右表的列时,为null
参考技术A 1.在字段前加上distinct 关键字
select distinct a.*, b.* from a left outer join b on a.id= b.id

使用 Symfony 时如何处理连接表中的附加列?

【中文标题】使用 Symfony 时如何处理连接表中的附加列?【英文标题】:How to handle additional columns in join tables when using Symfony? 【发布时间】:2013-08-12 04:51:41 【问题描述】:

假设我的 Symfony2 包中有两个实体,UserGroup。通过多对多关系关联。

    ┌────────────────┐         ┌────────────────┐         ┌────────────────┐
    |      USER      |         | USER_GROUP_REL |         |     GROUP      |
    ├────────────────┤         ├────────────────┤         ├────────────────┤
    | id#            ├---------┤ user_id#       |    ┌----┤ id#            |
    | username       |         | group_id#      ├----┘    | groupname      |
    | email          |         | created_date   |         |                |
    └────────────────┘         └────────────────┘         └────────────────┘

向连接表添加其他列的好做法或好方法是什么,例如表示User 加入Group 的日期的创建日期?

我知道我可以使用QueryBuilder 来编写INSERT 语句。

但据我所知,任何 INSERT QueryBuilder 或本机 SQL 的示例让我相信 ORM/Doctrine 试图避免直接的 INSERT 语句(例如,出于安全原因)。另外,就我对 Symfony 和 Doctrine 的理解而言,如果框架不涵盖这样一个常见的需求,我会大吃一惊。

【问题讨论】:

+1 结构美观 嗯,当多对多表有额外的列时,我设置了用户(1-n)用户组(n-1)组。 【参考方案1】:

您想设置关系的属性。这就是它在教义中的做法: doctrine 2 many to many (Products - Categories)

我用一个用例(比如你的)回答了这个问题。

这是一个考虑了好处和用例的附加问题/答案:Doctrine 2 : Best way to manage many-to-many associations

【讨论】:

以上是关于oracle 左外连接如果右表中有重复数据如何处理?的主要内容,如果未能解决你的问题,请参考以下文章

mysql开发之join语句学习

左外连接和右外连接的区别

左外连接右外连接内连接全连接的概念

Oracle 多表查询

如何处理错误:ER_DUP_ENTRY:nodejs 中的重复条目

使用 Symfony 时如何处理连接表中的附加列?