検索

ホームページ  >  に質問  >  本文

タイトルを次のように書き換えます: MySQL 構文の WITH `cte` AS (VALUES ROW(1), ROW(2), ROW(n)) を jOOQ DSL に変換する方法

MySQL の SQL クエリがあります:

リーリー

jOOQ DSL への変換後:

リーリー

結果は次のとおりです:

リーリー

しかし、説明には冗長な UNION があることが示されています:

リーリー

別の MySQL 構文 - VALUES ROW(1)、ROW(2)、ROW(n):

を使用して SQL を書き直しました。 リーリー

結果は同じです:

リーリー

ただし、クエリ プランナーは UNION を使用しません:

リーリー

質問: 最終的なスクリプトを jOOQ DSL に変換するにはどうすればよいですか?

を達成する方法が見つかりません ああああ

P粉794177659P粉794177659400日前418

全員に返信(1)返信します

  • P粉752812853

    P粉7528128532024-01-17 11:17:56

    jOOQ バージョン 3.15 の時点では、 標準 SQL VALUES コンストラクター org.jooq.Select として表す方法はありません。 。 org.jooq.Table としてのみ表すことができます。https://github.com/jOOQ/jOOQ/issues/5871 を参照してください。

    したがって、jOOQ DSL を使用して完全に準拠した構文を表現することはまだできませんが、FROM 句で VALUES を使用できます。 リーリー

    これにより、予想されるものとほぼ同じ計画が生成されるはずです。もう 1 つの解決策は、

    Pure SQL テンプレート を使用することです。

    返事
    0
  • キャンセル返事