質問
私もこのアプローチ、これが私の状況:
っていう選択エリアのギャラリー15選後でのユーザテーブルを通じてidをもっと増やしていきたいものを選びランダム画像から各ギャラリーから何かできない制限はleft join(写真)を迎えつランダムなくしてサブクエリです。
こちらはなんとんでもないとして働くべきである:
SELECT galleries.id, galleries.name, users.username, pictures.url
FROM galleries
LEFT JOIN users ON users.id = galleries.user_id
LEFT JOIN pictures ON (
SELECT pictures.url
FROM pictures
WHERE pictures.gallery_id = galleries.id
ORDER BY RAND()
LIMIT 1)
WHERE active = 1
ORDER BY RAND()
LIMIT 15
まもなっていること 活動記録 がんこだわった後いつ左に加入することはできるかないサブクエリでは:
$this->db->select('galleries.id, galleries.name, users.id as user_id, users.username');
$this->db->from('galleries');
$this->db->join('users', 'users.id = galleries.user_id','left');
$this->db->join('pictures','pictures.gallery_id = galleries.id AND','left');
$this->db->where('active',1);
思いを汚していると思うんかくすべてのsqlクエリー..
解決
きのフェッチランダムに写真を、サブクエリ:
select
g.name, u.username,
(select url from pictures p where p.gallery_id = g.gallery_id
order by rand() limit 1) as url
from galleries g
left join users u on g.user_id = u.id
where g.active = 1
に基づくコメント、選択画像の各ギャラリーにサブクエリです。この想定のテーブルはIDカラムです。
select
g.name, u.username, p.url, p.name
from (
select id, user_id, name,
(select id from pictures p
where p.gallery_id = g.gallery_id
order by rand() limit 1) as samplepictureid
from galleries
where g.active = 1
) g
left join users u on g.user_id = u.id
left join pictures p on p.id = g.samplepictureid
他のヒント
SELECT
g.id,
g.name,
u.username,
p.url
FROM
galleries g
INNER JOIN (SELECT DISTINCT
gallery_id,
(SELECT url FROM pictures ss WHERE ss.gallery_id = s.gallery_id
ORDER BY RAND() LIMIT 1) AS url
FROM
pictures s) p ON
g.id = p.gallery_id
LEFT OUTER JOIN users u ON
g.user_id = u.id
WHERE
g.active = 1
このクエリーに出かけを選んで、ギャラリー、その他ギャラリーの企画展と連動した絵(ばいギャラリーがなく、変更内側JOINを左外部結合させ、しょうき).その後、することがあるので、ユーザーとつながっています。今はもちろん、このパピーを返し毎friggingギャラリーが多くのユーザーにごhoorah!).場制限し、ユーザーが利用例-WHERE u.id = 123
).その他のいうよります。とるようにするかどうかを内で参加できます。
所属していません StackOverflow