私は2つのテーブルを持っています。 'グループ'と '値'。SQLランダムな行を選択すると、ヘルプに参加します
SELECT *
FROM groups as g
inner JOIN
(
SELECT * FROM values as v WHERE v.groupid = g.id ORDER BY RAND() LIMIT 1
) AS rv ON rv.groupid = g.id
V doesntのは、私は仕事ができる方法グラムへのアクセス権を持っているように見える:私はvalues.groupid = groups.id
は私が持っているクエリがある値テーブルからランダムに一つの行を選択しようとしていますこの周り?ランダムについては、value.idの値が削除されている可能性があり、小さなテーブル(最大200行まで)が存在するため、限界値1の解決策を得ることができました。私がjoin onのみを使用していて、join内にwhere句がない場合は、任意のグループからランダムな値を選択するか、何も返しません。誰でも助けてくれますか?
編集: この文句を言わない仕事のどちらか私は
SELECT g.*
,(SELECT * FROM v ORDER BY RAND() LIMIT 1)
FROM groups AS g
JOIN
(
SELECT * FROM values
) AS v ON v.groupid = g.id
この時、外部からのVにアクセスすることはできませんので、私は非常によく似た他の多くの質問が表示されますが、どれも実際にグループごとに値に参加をしようとしません効果があります。私が行方不明の場合は、言及してください、私は問題を削除します、私は絶えず他の人を見ていますが、私はまだ助けが必要です。ありがとう
私はこれが解決策だと思う、私はちょうど今http://recursive-design.comしようとしています/ blog/2009/08/11/mysql-select-random-row-with-join/ – Chris
値テーブルに「プライマリ」キー識別子がありますか?もしあれば、そのカラム名は何ですか? – DRapp