mysql - 如何从两个表中提取数据但使用一个偏移量和一个排序选项?

标签 mysql sql node.js database

第一阶段: 所以我想获取两种类型的用户信息,父级和子级。

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/

相关文章:

PHP - 提交数据枚举组合按钮

mysql - 无法创建没有外键的表 errno :150 MYSQL

sql - 如何优化 GROUP BY 查询

javascript - 如何使用 ReactJS 在列表中显示 Select 查询的结果?

node.js - Electron 更新程序 : Can not find module 'debug'

php - 如果条件为真,则选择数据

mysql - 如何在同一个表中使用内连接

sql - sql查询: Rank and partition oracle的说明

sql - Hive 在简单的选择查询中不返回任何结果

javascript - 将大量(>40,000) native Promise 链接在一起会消耗太多内存