Mastering ANTI JOIN in SQL with jOOQ: A Complete Guide
Java, SQL and jOOQ.by lukaseder7 May 2026
ANTI JOIN is a very useful operator from relational algebra. Regrettably, only few dialects support it in terms of SQL syntax, as we’ve written earlier.
blog.jooq.orgadded August 2026
Java, SQL and jOOQ.by lukaseder7 May 2026
ANTI JOIN is a very useful operator from relational algebra. Regrettably, only few dialects support it in terms of SQL syntax, as we’ve written earlier.
Java, SQL and jOOQ.by lukaseder4 May 2026
Some SQL operators are as esoteric as they’re powerful. One of the oldest operator that you’ve likely hardly ever used in real world applications is NATURAL JOIN which is the default in relational...
Java, SQL and jOOQ.by lukaseder27 Mar 2026
One of jOOQ’s most popular feature is the out-of-the-box debug logging experience. jOOQ developers find this feature very useful when developing their applications.
Java, SQL and jOOQ.by lukaseder11 Aug 2025
When implementing the awesome MULTISET operator in jOOQ, its implementation mostly relied on SQL/JSON support of various RDBMS.
Java, SQL and jOOQ.by lukaseder27 Mar 2025
ARRAY types are a part of the ISO/IEC 9075 SQL standard. The standard specifies how to: - Construct arrays - Nest data into arrays (e.g.
Java, SQL and jOOQ.by lukaseder28 Feb 2025
Every product manager knows this situation: - A user works with feature X1 . - They find a limitation / bug / quirk and want to work around it.
Java, SQL and jOOQ.by lukaseder3 Jun 2024
A cool standard SQL:2003 feature is the aggregate FILTER clause, which is supported natively by at least these RDBMS: - ClickHouse - CockroachDB - DuckDB - Firebird - H2 - HSQLDB - PostgreSQL -...
Java, SQL and jOOQ.by lukaseder1 Mar 2024
I’ve blogged about generic ways of getting top 1 or top n per category queries before on this blog.
Java, SQL and jOOQ.by lukaseder10 Jan 2024
One of jOOQ’s key features so far has always been to render pretty much exactly the SQL that users expect, without any surprises – unless some emulation is required to make a query work, of course.
Java, SQL and jOOQ.by lukaseder28 Dec 2023
jOOQ 3.19 finally delivers on a set of features that will greatly simplify your queries further, after jOOQ 3.11 introduced implicit to-one joins: What are these features? Many ORMs (e.g.
Java, SQL and jOOQ.by lukaseder20 Dec 2023
In MySQL, you cannot do this: create table t (i int primary key, j int); insert into t values (1, 1); update t set j = (select max(j) from t) + 1; The UPDATE statement will raise an error as...
Java, SQL and jOOQ.by lukaseder15 Dec 2023
New Dialects It’s been a few releases since we’ve added support for new dialects, but finally some very interesting RDBMS of increasing popularity have joined the jOOQ family including: - DuckDB...
Java, SQL and jOOQ.by lukaseder6 Dec 2023
jOOQ’s DAO API is one of jOOQ’s most controversial features. When it was first implemented, it was implemented merely: - Because it was so easy to implement - Because it seemed so useful for simple...
Java, SQL and jOOQ.by lukaseder28 Jun 2023
Java’s package private visibility is an underrated feature. When you omit any visibility modifier in Java, then the default (for most objects) is package private, i.e.
Java, SQL and jOOQ.by lukaseder25 Apr 2023
Microsoft T-SQL supports a language feature called table-valued parameter (TVP), which is a parameter of a table type that can be passed to a stored procedure or function.
Java, SQL and jOOQ.by lukaseder24 Mar 2023
Occasionally, you want to write a SQL query and fetch a hierarchy of data, whose flat representation may look like this: SELECT id, parent_id, label FROM t_directory; The result might be: |id...
Java, SQL and jOOQ.by lukaseder8 Mar 2023
DiagnosticsListener improvements A lot of additional diagnostics have been added, including the automated detection of pattern replacements, helping you lint your SQL queries irrespective of...
Java, SQL and jOOQ.by lukaseder24 Feb 2023
One of the more frequent questions about jOOQ is how to write a derived table (or a CTE). The jOOQ manual shows a simple example of a derived table: In SQL: SELECT nested.* FROM ( SELECT AUTHOR_ID...
Java, SQL and jOOQ.by lukaseder20 Jan 2023
One of MySQL 8’s biggest improvements is the support of window functions. As I always said in conferences, there’s SQL before window functions and SQL after window functions.
Java, SQL and jOOQ.by lukaseder8 Dec 2022
A frequently encountered doubt people have when using jOOQ is to decide when a “complex” query should be written using jOOQ API vs. when it should be implemented using native SQL.