mysql - 加入自我表并在新行中获取值
问题描述
我想知道是否有办法加入一个自我表,然后在新行中获取这些值。
原始表与此类似:
| id | slug | parent_id |
|----|---------|-----------|
| 1 | one | NULL |
| 2 | two | 1 |
我从可能包含 N 个 JOIN 语句的代码中动态生成此查询:
SELECT * FROM `permalinks`
INNER JOIN `permalinks` AS `permalinks1`
ON `permalinks`.`id` = `permalinks1`.`parent_id`
AND `permalinks1`.`slug` = 'two'
WHERE `permalinks`.`slug` = 'one'
这会产生:
| id | slug | id | slug |
|----|---------|----|--------|
| 1 | one | 2 | two |
但是我想得到:
| id | slug |
|----|---------|
| 1 | one |
| 2 | two |
是否可以将所有新的连接值作为新行?
解决方案
可以通过使用相同的查询两次并稍作调整并在联合后生成行来完成
SELECT perm.Id, perm.slug FROM permalinks as perm
INNER JOIN permalinks AS permalinks1
ON perm.id = permalinks1.parent_id
AND permalinks1.slug = 'two'
WHERE perm.slug = 'one'
union
SELECT permalinks1.Id, permalinks1.slug FROM permalinks as perm
INNER JOIN permalinks AS permalinks1
ON perm.id = permalinks1.parent_id
AND permalinks1.slug = 'two'
WHERE perm.slug = 'one';
推荐阅读
- r - 如何在属性名称不同的 for 循环中对 S4 对象进行子集化?
- javascript - 如何编写此 RxJs 代码以使输出之间的延迟是动态的?
- javascript - javascript代码不显示来自xml文件的数据
- php - 带有简码的 WordPress 自定义字段,可在帖子和页面中使用
- python - 带参数的类装饰器
- ios - 是什么让临时性 Always 授权是临时性的?
- discord.py - 存储触发功能的消息内容
- r - 记录定义同名函数的包
- database - 更改集合时 MongoDB 游标的行为如何?
- javascript - 当在 twitch 聊天中写入关键字时,向频道发送消息的 Discord 机器人