表格:
帮助(重要的是id和fecha字段)
共享帮助(其他日期不同的用户引用的帮助)
所以,
用户的所有帮助(user_id = 1)
SELECT * FROM helps WHERE id_user = 1
用户和他所引用的所有帮助
SELECT * FROM helps where id_user = 1 or id IN (SELECT helpid FROM shared_helps WHERE userid = 1)
我知道你们会发现这是一个非常丑陋的查询(我希望您能向我展示光明),但它似乎可以显示我想要的结果。问题是这种方式shared_helps.fecha被忽略了,所以在ORDER BY中不起作用,如何实现呢?
最佳答案
SELECT
helps.*
FROM
helps
LEFT JOIN
shared_helps
ON shared_helps.helpid = helps.id
AND shared_helps.userid = 1
WHERE
helps.id_user = 1
OR shared_helps.userid = 1
ORDER BY
CASE WHEN helps.id_user = 1 THEN 0 ELSE 1 END,
shared_helps.fecha
编辑
根据您的评论,尝试一下...
ORDER BY
COALESCE(shared_helps.fecha, helps.fecha)
也许这...
ORDER BY
helps.fecha
老实说,我不是100%确定您需要什么。也许您可以包括一些样本数据以及该样本数据所需的输出?