选择最后的10个查询
我想从我的messages
表要么在receiver_id = 1
或sender_id = 1
,但那些有receiver_id = 1
有DISTICT
应用在sender_id
和那些有sender_id = 1
有选择的最后10行不同的行receiver_id
上应用的DISTINCT
属性。选择最后的10个查询
基本上,我想说的是我想要选择最后10条消息,要么是由用户收到的ID为1,要么由10个不同的其他用户发送或发送。
我有什么企图迄今:
SELECT * FROM (SELECT DISTINCT sender_id FROM messages WHERE receiver_id = 1) ORDER BY id DESC LIMIT 10) tmp ORDER BY id ASC
SELECT * FROM (SELECT * DISTINCT receiver_id FROM messages WHERE sender_id= 1) ORDER BY id DESC LIMIT 10) tmp ORDER BY id ASC
但试图获得单独并添加阵列(和消息的ID对它们进行排序)没有相当的工作。
所以我试图使一个查询,像这样:
SELECT * FROM (SELECT DISTINCT receiver_id, sender_id FROM messages WHERE (receiver_id = 1 OR sender_id = 1)) ORDER BY id DESC LIMIT 10) tmp ORDER BY id ASC
但事实证明,我的查询是一个总的混乱和科西嘉的,不回我我想要的东西。
PS:我使用的XAMPP MySQL的:MariaDB的
你的第二个段落是:
基本上,我是什么想说的是,我想选择10条 最后消息(行存储)在分别的数据库或者发送 或通过用户与1.
这是一个相当基本查询的ID接收:
SELECT m.*
FROM messages m
WHERE 1 IN (m.receiver_id, m.sender_id)
ORDER BY m.id DESC
LIMIT 10;
我不知道如何解释我想要什么=)) 我想我会编辑我的问题,当我找到一种方法来正确解释 –
噢..我想这是我想问: 我想要最后的10条消息,要么是由用户收到的ID为1,要么由10位不同的其他用户发送,要么由其他用户发送。 我现在编辑我的问题。 –
请编辑您的问题,并提供样本数据和期望的结果。 “DISTINCT”不是一种财产,并且您不清楚您的要求。 –
请参阅https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-查询 – Strawberry