[MySQL] Keine doppelten Inhalte

flaschenkind

Well-known member
ID: 118459
L
20 April 2006
4.507
338
Ich habe folgende Query:

Code:
SELECT `galerien`.`name`, `fotos`.`foto` FROM `cms_galerien` AS `galerien` LEFT JOIN `cms_galerien_fotos` AS `fotos` ON `fotos`.`galerie`=`galerien`.`id`

Bei der Query kommen bei mehreren Fotos in einer Galerie, aber mehrmals die selbe ID. Ich möchte aber maximal 1 Foto pro Galerie (gut wäre zufall). Wie kann ich das machen?
 
Zuletzt bearbeitet:

MrToiz

Well-known member
ID: 72115
L
28 April 2006
766
91
Probier mal GROUP BY fotos.galerie, bin mir aber nicht sicher, ob da was vernünftiges rauskommt.
 

flaschenkind

Well-known member
ID: 118459
L
20 April 2006
4.507
338
Damit bekomm ich die Kategorie maximal einmal angezeigt, aber trotzdem werden 2 Bilder ausgegeben. Aber damit bin ich schonmal nen Schritt weiter, notfalls mache ich den Rest per PHP ;)
 

flaschenkind

Well-known member
ID: 118459
L
20 April 2006
4.507
338
Thx, werde ich gleich mal testen :)

EDIT: Hmm, ich weiß nicht. Er hatte da eine Tabelle und das hier sind zwei :-?
 
Zuletzt bearbeitet:

Henne

Well-known member
ID: 51568
L
28 Mai 2006
130
7
Code:
SELECT `galerien`.`name`, `fotos`.`foto` 
FROM `cms_galerien` AS `galerien` 
LEFT JOIN `cms_galerien_fotos` AS `fotos` 
ON `fotos`.`galerie`=`galerien`.`id`
GROUP BY `galerien`.`id`

Beim Zufall müsste ich nochmal überlegen
 

flaschenkind

Well-known member
ID: 118459
L
20 April 2006
4.507
338
Damit bekomm ich das zwar Zufällig, aber auch nur sachen aus der foto Tabelle. Die Galerie Namen und so aus der Galerie Tabelle werden nicht beachtet.
Aber vllt schaffe ich es mit dem Query ansatz jetzt auch selber, mal versuchen ;)
Thx schonmal.

EDIT: Ich glaub ich bekomms doch nich hin :-?
Ich hab mir das jetzt mal so abgeändert:
Code:
SELECT *
FROM (
SELECT *
FROM cms_galerien
ORDER BY RAND( )
) AS galerien
WHERE galerien.id
IN (
SELECT galerie
FROM cms_galerien_fotos
AS bilder
GROUP BY bilder.galerie
)
GROUP BY galerien.id

Damit bekomm ich den Namen der Galerie und die Beschreibung, aber nicht das Foto. Mit deiner Variante bekomm ich das Foto, aber nicht den Namen und die Beschreibung.
 
Zuletzt bearbeitet:

Johnson

Code-Frevler
ID: 118054
L
20 April 2006
859
53
Das liefert dir auch name, beschreibung, bild etc aus galerie und galerie_bilder (sry für die falschen Tabellennamen *gg*)

Code:
SELECT *
FROM (

SELECT *
FROM galerie_bilder
ORDER BY RAND( )
) AS bilder, galerie
WHERE bilder.galerie_id
IN (

SELECT id
FROM galerie
GROUP BY id
)
GROUP BY bilder.galerie_id
 

flaschenkind

Well-known member
ID: 118459
L
20 April 2006
4.507
338
Np wegen den falschen Tabellennamen, das bekomm ich grade noch so selber angepasst :biggrin:

Jeztt funktioniert es, vielen Dank :D :)