Temat: [MySQL] Losowy rekord
Zrobiłem nawet takiego tasiemnca:
SELECT m.id, n.nazwa miejscowosc, o.id, o.nazwa
FROM miejscowosci m
LEFT JOIN miejscowosci_nazwa n ON n.m_id = m.id
AND n.j_id = '1'
LEFT JOIN obiekty o ON o.miejscowosc = m.id
AND o.id = (
SELECT id
FROM obiekty
WHERE miejscowosc = m.id
ORDER BY RAND( )
LIMIT 1 )
GROUP BY m.id;
Działa prawie dobrze. Zwraca losowe obiekty przypisane do każdej miejscowości, ale czasami zamiast obiektu zwraca null...
EDIT:
Kolejny tasiemiec do kolekcji:
SELECT
n.nazwa,
m.id,
o.id,
o.nazwa
FROM
miejscowosci m LEFT JOIN miejscowosci_nazwa n ON n.m_id = m.id AND n.j_id = '1', obiekty o
WHERE
o.id = (SELECT id FROM obiekty WHERE miejscowosc = m.id ORDER BY RAND() LIMIT 1)
GROUP BY
m.id
Tym razem albo zwraca miejscowosc z losowym obiektem z tej miejscowosci, albo w ogole nie zwraca miejscowosci (pewnie to przez WHERE)
Bartłomiej Rosiński edytował(a) ten post dnia 21.06.08 o godzinie 19:56