【发布时间】:2019-06-29 03:59:04
【问题描述】:
我有这张表,我想存储一个记录链。
CREATE TABLE table_name (
id INT,
unique_id varchar,
reference_id varchar,
);
我想为 MariDB 实现 SQL 查询,它按 id 打印所有记录以及所有带有 reference_id 的记录。像这样的:
| id | unique_id | reference_id | | |
|----|-----------|--------------|---|---|
| 43 | 55544 | | | |
| 45 | 45454 | 43 | | |
| 66 | 55655 | 45 | | |
| 78 | 88877 | 66 | | |
| 99 | 454 | 33 | | |
我希望当我选择记录 66 来获取所有上下事务时,因为彼此都使用指向它们的 id。我如何使用递归 CTE 来实现这一点?有没有更好的办法?
unique_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 中吗?
【问题讨论】:
标签: sql jpa mariadb jpa-2.0 jpa-2.1