qeuw
13.01.2005, 15:03:13
Otóz próbuje napisac skrypt ktory wyswietla kategorie, i pokazuje jedno losowe zdjecie dla kazdej z kategorii.
Probowałem w taki sposob ale on nie działa.
SELECT *
FROM kategoria LEFT JOIN zdjecie ON (kategoria.kat_id=zdjecie.zdj_kat_id) OR ORDER BY rand() LIMIT 1
kszychu
13.01.2005, 16:12:43
A co robi tam ten niebieski or?
popbart
13.01.2005, 16:15:29
A po co tu left join? Przecież left join podstawia wartości null dla kategorii w której nie ma zdjęć. I 'or' też odpada

SELECT *
FROM kategoria INNER JOIN zdjecie ON (kategoria.kat_id=zdjecie.zdj_kat_id)
ORDER BY rand() LIMIT 1
kszychu
13.01.2005, 16:17:12
Cytat(popbart @ 2005-01-13 16:15:29)
A po co tu left join? Przecież left join podstawia wartości null dla kategorii w której nie ma zdjęć.
Ano może właśnie po to: by wyświetlić też puste kategorie.
popbart
13.01.2005, 16:32:27
Cytat
Ano może właśnie po to: by wyświetlić też puste kategorie.
A tak w ogóle to powinno być tak

SELECT * FROM(SELECT *
FROM kategoria LEFT JOIN zdjecie ON (kategoria.kat_id=zdjecie.zdj_kat_id)
ORDER BY rand()) AS tab GROUP BY tab.kat_id
qeuw
13.01.2005, 20:36:34
Niestety te kody nie wyświetlaja tegoco chce lub nie działaja.
Napisze jak ma to wygladac bo mogłem zle opisac sytuacje.
Mam galerie, znajduja sie w niej 3 tabele kategoria,podkategoria,zdjecie. W tabeli zdjecie znajduje sie odwolanie do id tabel: kategorii i podkategorii. Chce aby kazda kategoria miała jakies losowe zdjecie, przypadajace do kazdej z kategorii.
popbart
13.01.2005, 23:08:23
Mój select działa tylko na mysql > 4.1.x (subquery)

Jeśli masz starszego to może tak prymitywniej
<?php
$query=\"select * from kategoria\";
{
echo $tab['id_kat'].\" \";
$query2=\"select * from zdjecie where zdj_kat_id=\".$tab['id_kat'].\" order by rand() limit1\";
}
?>