mysql - mysql self join on parent_id 但按字母顺序排列
问题描述
我有以下表格。我已经简化了代码以提高可读性
CREATE TABLE entries (
ID int(),
entry varchar(),
parent_id int()
);
CREATE TABLE nouns (
entry_id int(),
plural varchar(),
[...]
);
CREATE TABLE verbs (
entry_id int(),
pres_part varchar(),
past_part varchar(),
[...]
);
CREATE TABLE definitions (
ID int(),
definition varchar(),
[...]
);
CREATE TABLE definitions_entries (
definition_id int(),
entry_id int()
);
我在词汇表页面上显示所有条目,如下所示
SELECT *
FROM entries
LEFT JOIN nouns ON nouns.entry_id = entries.ID
LEFT JOIN verbs ON verbs.entry_id = entries.ID
LEFT JOIN definitions_entries ON entries.ID = definitions_entries.entry_id
LEFT JOIN definitions ON definitions_entries.definition_id = definitions.ID
ORDER BY entries.entry
但我想重新排序列表,以便子条目出现在其父条目下方,但父条目仍按字母顺序排序。我想象输出看起来像这样......
1 entry a null definition 1
4 entry a entry x definition 2
5 entry a entry y definition 3
2 entry b null definition 4
5 entry b entry z definition 5
3 entry c null definition 6
我没有任何 SQL 示例可以展示,因为它们都已经烂尾了,我迷失了方向。 我得到的最好结果看起来像这样......
4 entry a entry x definition 2
5 entry a entry y definition 3
5 entry b entry z definition 5
1 entry a null definition 1 missing
2 entry b null definition 4 missing
3 entry c null definition 6 missing
我正在运行 MySQL 5.6,所以我不能使用 RECURSIVE WITH。我什至不明白这是否对我有帮助。
解决方案
推荐阅读
- python - 使用 Python 生成图像
- c# - Time.deltaTime 在 Unity 中执行的主要功能是什么?
- c# - SQLite 抛出繁忙异常并被锁定
- wordpress - 从免费 wordpress 帐户导入帖子后,Wordpress 帖子的代码语言块格式不起作用
- angular - 使用Angular 2+将单击的数据表行的值写入子组件html
- python-3.x - 如果数字不是整个python 3.5.7,如何打印
- python - 装饰器修改生成器值
- html - VideoJS - 多个视频
- javascript - GridLayout 中的列表的 Nativescript-vue 问题
- c++ - 移动数组元素 +1