WOW!这是一个奇怪的标题,但我很高兴你看,因为我找不到另一种说法。
我有一张人员表和一张照片和视频链接表。 我和人们一起去媒体,当然一个人可以有多个媒体。
我试图在一个查询中抓住前30个人及其所有媒体,但是当我说LIMIT 0,30时。当然,我只会得到前30个媒体文件,可能是10个人。
在我进行查询之前,我不知道每个人将拥有多少媒体文件。有没有办法可以说LIMIT DISTINCT(uid 0,30)????
或类似的东西?
答案 0 :(得分:4)
您可以在您的MySQL版本中使用子查询吗?
select * from media m inner join ( select uid from users_tbl limit 0,30) map on map.uid = m.uid inner join users_tbl u on u.uid = m.uid
答案 1 :(得分:1)
FWIW,这是另一个应该返回相同结果的查询:
SELECT *
FROM media m INNER JOIN users_tbl u USING (uid)
WHERE u.uid IN (SELECT uid FROM users_tbl ORDER BY uid LIMIT 0,30);
请注意,当您使用LIMIT
时,应始终使用ORDER BY
。否则,无法保证 您将获得30个用户。