テーブルから約20個のランダムな行をランダムに取得しようとしていますが、INNER JOINコマンドを使用して、共通のID。他のテーブル間で順序を維持しながらランダムな行を取得する
データベースには2つのテーブルがあり、最初の(リスト)はid(穴がある)で索引付けされ、2番目のフィールド(リスト・エレメント)は1番目のテーブルの各IDに対して7つのfield_name/field_valueのペアを持ちます。私はそれらの5つに興味があります。
私はそれを行う方法について私の頭を包むことはできません。それはデータベースで行うことができますか、それとも複数のクエリでプログラムで実行する必要がありますか?
SELECT listings.id, listings.title, listings.featured, listingselements.field_name, listingselements.field_value
FROM listings
INNER JOIN listingselements
ON listings.id = listingselements.id
WHERE RAND()<(SELECT ((20/COUNT(*))*10) FROM listings)
AND (listingselements.field_name = "price"
OR listingselements.field_name = "bathrooms"
OR listingselements.field_name = "bedrooms"
OR listingselements.field_name = "sq_meter"
OR listingselements.field_name = "city")
ORDER BY RAND();
RAND(BY WHERE/ORDERは)素晴らしい作品、しかしクエリーはINNERは、次の項目に移動する前に列を登録しようつかむしません。
わずかなタイプミスをランダムに20パーセントを入れてみては? on節はlistingselements(no db)を表示します – Andrew
ちょうど訂正しました。 –