Sql 创建JPA兼容的查询
我有这个表,我想存储一个记录链Sql 创建JPA兼容的查询,sql,jpa,mariadb,jpa-2.0,jpa-2.1,Sql,Jpa,Mariadb,Jpa 2.0,Jpa 2.1,我有这个表,我想存储一个记录链 CREATE TABLE table_name ( id INT, unique_id varchar, reference_id varchar, ); 我想为MariDB实现SQL查询,它通过id打印所有记录,并使用引用id打印所有记录。类似如下: | id | unique_id | reference_id | | | |----|-----------|--------------|---|---| | 43 | 555
CREATE TABLE table_name (
id INT,
unique_id varchar,
reference_id varchar,
);
我想为MariDB实现SQL查询,它通过id打印所有记录,并使用引用id打印所有记录。类似如下:
| id | unique_id | reference_id | | |
|----|-----------|--------------|---|---|
| 43 | 55544 | | | |
| 45 | 45454 | 43 | | |
| 66 | 55655 | 45 | | |
| 78 | 88877 | 66 | | |
| 99 | 454 | 33 | | |
当我选择record 66时,我希望获得所有上下事务,因为彼此都使用指向它们的id。如何使用递归CTE实现这一点?有更好的办法吗
具有唯一\u id 66的记录的预期结果:
| id | unique_id | reference_id | | |
|----|-----------|--------------|---|---|
| 43 | 55544 | | | |
| 45 | 45454 | 43 | | |
| 66 | 55655 | 45 | | |
| 78 | 88877 | 66 | | |
我试过了,但上面的行没有打印出来
select @ref:=id as id, unique_id, reference_id
from mytable
join (select @ref:=id from mytable WHERE id = 66)tmp
where reference_id=@ref
如果可能的话,我想把这个查询编辑成JPA 这在JPQL中是不可能的,因为这将是一个递归查询 但您可以使用SQL并将其作为本机查询执行
entityManager.createNativeQuery("<your sql>");
entityManager.createNativeQuery(“”);
阅读MariaDB手册中有关递归查询的更多信息
谢谢。如何编辑SQL查询以获取所有上下行?