Mysql 选择多个ID为的行的SQL查询
我需要从表中选择所有行,请参见下面的结构,但这更复杂 我想要5个唯一的idm,但所有行都有这个idm,它是对话的ID。。我怎么做Mysql 选择多个ID为的行的SQL查询,mysql,Mysql,我需要从表中选择所有行,请参见下面的结构,但这更复杂 我想要5个唯一的idm,但所有行都有这个idm,它是对话的ID。。我怎么做 +------------+ | messagerie | +------------+ | ID | | idm | | send | | receipt | | subject | | message | +------------+ 为唯一性选择不同的IDM,并使用LIMIT关键字仅选择5。 使用内
+------------+
| messagerie |
+------------+
| ID |
| idm |
| send |
| receipt |
| subject |
| message |
+------------+
为唯一性选择不同的IDM,并使用LIMIT关键字仅选择5。
使用内部联接子句选择具有此idm的所有行。
下面的查询将始终随机为您提供5个唯一的IDM。
SQL:
idm在哪里?我没有任何特定的idm,我需要来自特定收据的最后5个idm,这是一个用户的id。。我的主题不够清楚..显示一个您尝试过的基本SQL查询,这样我们就可以尝试重构并帮助您获得工作查询您能够获得那些idm吗?我尝试了从messagerie中选择*从messagerie中选择idm,其中recept=0=messagerie.idm,但这会返回多行,并且不起作用..听起来很完美。。除了我在一个奇怪的SQL server上工作,它告诉我:1235-这个版本的MySQL还不支持“LIMIT&IN/ALL/ANY/SOME subquery”@GPerdigal你使用的是哪个版本的MySQL?此外,我还修复了从WHERE到内部联接的查询,因为它以前一直可以生成新的5行。@GPerdigal看起来您也可以在这里使用WHERE子句作为执行顺序,但最好是安全的。@GPerdigal我建议您最好升级到MariaDB,因为随着应用程序的扩展,您将要执行更复杂的操作,并且您不希望出现手头任务所必需的不受支持的关键字错误。@GPerdigal将提供帮助。
select *
from messagerie m1
inner join (select distinct idm
from messagerie
order by rand() LIMIT 5) m2
on m1.idm = m2.idm;