第一阶段: 所以我想获取两种类型的用户信息,父级和子级。
parent 不能有 child , child 也不能有 parent 。
出于分页目的,我想从两个表中获取 50 个表,但如果没有父表,则仅获取子表(基于 date_account_created 的排序)。
第二阶段: 另一个增加的复杂性是还应该返回属于父级的所有子级。
解决方案:
是否可以添加第 2 阶段,如果不能,我可以获取第 1 阶段,然后根据添加的子项对所有子项进行单独查询。
这是我的尝试:
SELECT PARENT.* CHILDREN.*
FROM PARENT JOIN CHILDREN ON PARENT.uid != CHILD.uid
ORDER BY PARENT.created_date, CHILDREN.created_date
LIMIT 50 OFFSET 50;
不确定如何执行 ORDER by 因为它们是不同的表?
我的堆栈是 Nodejs 和 Mysql。
Update:
Example PARENT table:
pid: 1, uid: 1, date_created August 5, 2019
pid: 2, uid: 2, date_created August 4, 2019
pid: 3, uid: 3, date_created August 15, 2019
Example CHILD table:
cid: 1, uid: 5, date_created August 3, 2019
cid: 2, uid: 1, date_created August 2, 2019
cid: 3, uid: 3, date_created August 15, 2019
Expected Result:
cid: 1, uid: 5, date_created August 3, 2019
pid: 2, uid: 2, date_created August 4, 2019
pid: 1, uid: 1, date_created August 5, 2019
pid: 3, uid: 3, date_created August 15, 2019
最佳答案
请尝试此查询
SELECT PARENT.* CHILDREN.*
FROM PARENT LEFT JOIN CHILDREN ON PARENT.uid != CHILD.uid
ORDER BY PARENT.created_date, CHILDREN.created_date
LIMIT 50 OFFSET 50;
关于mysql - 如何从两个表中提取数据但使用一个偏移量和一个排序选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57581249/