1

おお!変なタイトルですが、他の言い方が見つからなかったので、見てくれてうれしいです。

人のテーブルと、写真やビデオへのリンクのテーブルがあります。私は人々をメディアに参加させます。もちろん、1 人が複数のメディアを持つことができます。

最初の 30 人とそのすべてのメディアを 1 つのクエリで取得しようとしていますが、LIMIT 0,30 と言うと. もちろん、最初の 30 個のメディア ファイルしか取得しません。

クエリを作成する前に、各ユーザーが所有するメディア ファイルの数はわかりません。LIMIT DISTINCT(uid 0,30) と言える方法はありますか????

またはそのようなもの?

4

2 に答える 2

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
于 2009-02-03T20:13:35.560 に答える
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 人のユーザーを獲得できるという保証はありませ

于 2009-02-03T22:15:39.463 に答える