Search code examples
jpajpa-2.0jpql

How can i inner join a subquery in JPQL


I need a JPQL for the MySQL query:

SELECT * 
FROM table1 t1 
INNER JOIN table2 t2 
  ON t1.id = t2.table1.id 
INNER JOIN (SELECT * FROM table1 t3 
            INNER JOIN table2 t4 ON t3.id = t4.table1.id 
            WHERE t3.name = 'xxx') subTable 
  ON t1.number = subTable.number 
WHERE t1.number = '5' 
  AND id = '3'

Solution

  • Your query seems quite pathological, perhaps say what result you are trying to query, and include your object model.

    In general, JPQL does not support sub-selects in the from clause, so your query is not directly convertable to JPQL.

    You can always just execute it as a JPA native SQL query, since you seem to be comfortable with SQL than JPQL.