第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何讓 JooQ 聯(lián)合兩個(gè)具有相同列和數(shù)據(jù)類型的不同表?

如何讓 JooQ 聯(lián)合兩個(gè)具有相同列和數(shù)據(jù)類型的不同表?

慕勒3428872 2022-05-25 16:18:50
我的數(shù)據(jù)庫中有兩個(gè)表,這些表具有完全相同的列和數(shù)據(jù)類型,但順序不同。表 A 包含以下列:A、B、C、D。表 B 包含以下列:A、C、D、B。我有一個(gè)使用 JooQ 查詢數(shù)據(jù)庫的應(yīng)用程序,它使用 Codegen 創(chuàng)建表和記錄。但是,由于編譯錯(cuò)誤,它不允許我合并兩個(gè) select 語句。我能做些什么來合并這兩個(gè)表?StepWhereSelect<ARecord> query = dsl.selectFrom(A);StepWhereSelect<BRecord> query2 = dsl.selectFrom(B);query.union(query2)在聯(lián)合函數(shù)內(nèi)部的變量上,它涉及到 SelectUnionStep 中關(guān)于聯(lián)合(ARecord)不能應(yīng)用于聯(lián)合(BRecord)的類型不匹配。我在 JooQ 哪里可以合并這兩張表?
查看完整描述

1 回答

?
叮當(dāng)貓咪

TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個(gè)贊

您正在尋找的是 jOOQ 對(duì) SQL 標(biāo)準(zhǔn)語法的支持UNION CORRESPONDING。我所知道的任何 RDBMS 目前都沒有實(shí)現(xiàn)該語法,但它可以很容易地被 jOOQ 模擬。在沒有此語法支持的情況下,您可以使用以下代碼在兩個(gè)子查詢中創(chuàng)建正確的列順序:


var q1 = dsl.select(Stream.of(A.fields()).sorted(Field::getName).collect(toList()))

            .from(A);

var q2 = dsl.select(Stream.of(B.fields()).sorted(Field::getName).collect(toList()))

            .from(A);

q1.union(q2).fetch();

當(dāng)然,這不再是類型安全了。如果你仍然想接收ARecord類型,你可以寫


q1.union(q2).fetchInto(A);


查看完整回答
反對(duì) 回復(fù) 2022-05-25
  • 1 回答
  • 0 關(guān)注
  • 175 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)