标签: outer-join

如何使用 JPA CriteriaBuilder 查询执行外连接?

我正在使用 JPA 2.0、Hibernate 4.1.0.Final 和 MySQL 5.5.27。我想构造一个 JPA 查询,每行返回两个实体,并且我想执行右外连接。这两个实体是:

\n\n
@Entity\n@Table(name = "user",\n    uniqueConstraints = { @UniqueConstraint(columnNames = { "USER_NAME" }) }\n)\npublic class User implements Comparable<User>, Serializable\n{\n    ...\n    @Column(name = "first_name")\n    @NotNull\n    /* the first name of the User */\n    private String firstName;\n
Run Code Online (Sandbox Code Playgroud)\n\n

\n\n
@Entity\n@Table(name="code_user",\n    uniqueConstraints = { \n        @UniqueConstraint(columnNames = { "CODE_ID", "USER_ID" }) }\n)\npublic class CodeUser \n{\n\n    @Id\n    @NotNull\n    @GeneratedValue(generator = "uuid-strategy")\n    @Column(name = "ID")\n    private String id;\n\n    @ManyToOne\n    @JoinColumn(name = "CODE_ID", nullable = false, updatable …
Run Code Online (Sandbox Code Playgroud)

hibernate jpa join outer-join jpa-2.0

4
推荐指数
1
解决办法
2万
查看次数

针对海量数据优化MySQL全外连接

我们有以下 mysql 表(为了直奔主题而简化)

CREATE TABLE `MONTH_RAW_EVENTS` (
  `idEvent` int(11) unsigned NOT NULL,
  `city` varchar(45) NOT NULL,
  `country` varchar(45) NOT NULL,
  `ts` datetime NOT NULL,
  `idClient` varchar(45) NOT NULL,
  `event_category` varchar(45) NOT NULL,
  ... bunch of other fields
  PRIMARY KEY (`idEvent`),
  KEY `idx_city` (`city`),
  KEY `idx_country` (`country`),
  KEY `idClient` (`idClient`),
) ENGINE=InnoDB;

CREATE TABLE `compilation_table` (
  `idClient` int(11) unsigned DEFAULT NULL,
  `city` varchar(200) DEFAULT NULL,
  `month` int(2) DEFAULT NULL,
  `year` int(4) DEFAULT NULL,
  `events_profile` int(10) unsigned NOT NULL DEFAULT '0',
  `events_others` …
Run Code Online (Sandbox Code Playgroud)

mysql sql outer-join query-performance

4
推荐指数
1
解决办法
2065
查看次数

旧式 JOIN 语法在 T-SQL 中意味着什么?

我需要编辑旧式 T-SQL 代码。

  • 什么是=*意思?

  • 这是什么*=意思?

我认为它们是 JOIN,但我不知道它们各自的 JOIN 类型是什么。

sql t-sql sql-server outer-join

4
推荐指数
1
解决办法
3732
查看次数

如何使用 .include 查询实体框架 6 强制外连接

我的数据模型如下。UserPhone是必需的,但导航属性是可选的,只要 的User表可以为空:

public class Request
{
    [Key]
    public int Id {get;set;}
    [Required]
    public string UserPhone {get;set;}
    [ForeignKey("UserPhone")]
    public virtual User User {get;set;}
}

public class User
{
    [Key]
    public string UserPhone {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

sUser表在请求输入系统后填充。在输入请求和未填充用户之间的某个位置,我尝试获取用户的所有请求(如果存在)(外连接)。

db.Requests.Include(r=>r.User).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

这给了我零结果,因为 EF 进行了内部联接(我的UserPhone字段已定义并且是外键,并且它是请求表所必需的)。

如何正确定义映射以便能够使用包含映射?我需要这个,include因为我的案例涉及了更多的表,我想用手动连接来完成所有操作

.net c# entity-framework outer-join entity-framework-6

4
推荐指数
1
解决办法
2677
查看次数

与 KafkaStreams 的窗口结束外连接

我有一个 Kafka 主题,我希望其中的消息具有两种不同的键类型:旧的和新的。即"1-new", "1-old", "2-new", "2-old". 键是唯一的,但有些可能会丢失。

现在使用 Kotlin 和 KafkaStreams API,我可以记录那些具有相同密钥 ID 的新旧消息。

    val windows = JoinWindows.of(Duration.of(2, MINUTES).toMillis())

    val newStream = stream.filter({ key, _ -> isNew(key) })
            .map({key, value ->  KeyValue(key.replace(NEW_PREFIX, ""), value) })

    val oldStream = stream.filter({ key, _ -> isOld(key) })
            .map({key, value ->  KeyValue(key.replace(OLD_PREFIX, ""), value) })

    val joined = newStream.join(oldStream,
            { value1, value2 -> "$value1&$value2" }, windows)

    joined.foreach({ key, value ->
        log.info { "JOINED $key : $value" }
    })
Run Code Online (Sandbox Code Playgroud)

现在我想知道由于某种原因在 …

outer-join apache-kafka apache-kafka-streams

4
推荐指数
1
解决办法
1493
查看次数

SQL 全外连接重复问题

我一直在搜索这个,我只是看不出我哪里出错了。我希望有人能帮我弄清楚。我有两张表,一张是零件号的所有销售订单 (SO),一张是零件号的所有采购订单 (PO)。我想将结果合并在一起。大多数情况下,每个零件的采购订单和销售订单数量不会相同。在此示例中,我有 2 个销售订单和 1 个采购订单。

Table 1 (SO)
Company     Part     SalesOrder
ABC         123       5530
ABC         123       6854
ABC         456       7772
ABC         456       6868

Table 2 (PO)
Company     Part     PurchaseOrder
ABC         123       9889
ABC         456       9308
ABC         456       9655
ABC         456       9774
Run Code Online (Sandbox Code Playgroud)

我希望看到:

Company     Part     SalesOrder     PurchaseOrder
ABC         123       5530            9889
ABC         123       6854            NULL
ABC         456       7772            9308
ABC         456       6868            9655
ABC         456       NULL            9774
Run Code Online (Sandbox Code Playgroud)

但我看到:

Company     Part     SalesOrder     PurchaseOrder
ABC         123       5530            9889
ABC         123       6854 …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server join outer-join

4
推荐指数
1
解决办法
9846
查看次数

完全外联这真是个坏事吗?

一般来说,我认为"FULL OUTER JOIN被认为是有害的",以改变这句话.

背景:

http://weblogs.sqlteam.com/jeffs/archive/2007/04/19/Full-Outer-Joins.aspx

但我确实有一个特定的情况,它会非常方便:

鉴于:

CREATE VIEW Calcs(c1, c2, c3, fordate, ...other columns) AS
   /* Complicated set of equations, etc. */
Run Code Online (Sandbox Code Playgroud)

和:

CREATE TABLE Overrides(c1, c2, c3, fordate)
Run Code Online (Sandbox Code Playgroud)

我需要调整上面的视图来遵循这个逻辑:

  1. 对于计算日期没有相应覆盖的任何Calcs行,请选择计算值.
  2. 对于计算日期与"覆盖"日期匹配的任何Calcs行,请选择覆盖值.
  3. 对于Calcs中没有相应行的任何Override行,请选择覆盖值.

现在,通常我会做一个三部分查询:

CREATE VIEW Calcs AS ... (current logic)

CREATE VIEW CalcsWithOverrides AS

   SELECT * FROM Calcs WHERE NOT EXISTS (match in Overrides)

   UNION ALL

   SELECT override.c1, override.c2, override.c3, …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server outer-join

3
推荐指数
1
解决办法
1408
查看次数

让我清楚了解Oracle 9i中的外连接

外连接在我看来有点令人困惑.

有没有人可以让我清楚地了解外连接(右,左和全)?

sql t-sql oracle outer-join oracle9i

3
推荐指数
1
解决办法
1845
查看次数

左连接,排序,MySQL优化

我有这样的查询:

   SELECT m...., a...., r....
     FROM 0_member AS m                 
LEFT JOIN 0_area AS a ON a.user_id = (SELECT user_id 
                                        FROM `0_area` 
                                       WHERE user_id = m.id 
                                    ORDER BY sec_id ASC LIMIT 1)
LEFT JOIN 0_rank as r ON a.rank_id = r.id 
    WHERE m.login_userid = '$username'
Run Code Online (Sandbox Code Playgroud)

我们的想法是从0_area表中获取第一行,从而获得内部连接.但是,它没有按预期工作.

在0_area和0_member之间,0_member.id = 0_area.user_id.但是,有多行0_area.user_id,我希望行具有最低值sec_id.

有什么帮助吗?

mysql sql left-join outer-join

3
推荐指数
1
解决办法
716
查看次数

Oracle和SQL Server选择(+)等效

在Oracle我有:

SELECT t2.Regkood, t2.naitatel, t2.naitafaks, t3.lahtiolekuaeg, t1.*
FROM table1 t1, table2 t2, table3 t3
WHERE t1.client = t2.client AND t1.client = t3.client(+) AND t1.client = 414246
Run Code Online (Sandbox Code Playgroud)

如何在SQL Server中获得相同的内容?

谢谢

sql-server oracle select outer-join

3
推荐指数
1
解决办法
7742
查看次数