Hallo liebe Mitstreiter der Website-Entwicklung
Ich steh grad in punkto SQL ein wenig an.
Also es geht darum dass ich an einem System werkel in dem es “Kategorien” gibt in welche “Bilder” fallen.
Nun mache ich eine Übersicht über alle Kategorien und will als optische Aufwertung ein Zufallsbild aus jeder Kategorie daneben haben.
Tabellen sind:
-) Kategorie (Name, ID)
-) Bild (Kategorie_ID, Name, Breite, Hoehe, uvm.)
Meine Abfrage sieht nun (stark vereinfacht, da ich noch mehr in der Datenbnak hab) so aus:
select k.name,
k.id,
(select b.breite from bild b where b.Kategorie_id=k.id order by rand() limit 1)
from Kategorie k
So weit so gut. Allerdings ist das jetzt nur mal die “Breite” wenn man genau schaut. Ich brauch aber noch mehr Attribute aus “Bild”.
Gebe ich einfach mehr Attribute in das Subselect rein, sprich:
krieg ich n SQL Error:
-> Ich darf also im Subselect nur ein einziges Attribut auswählen?
Und mache ich für jedes Attribut ein eigenes Subselect komm ich mir ganz schön blöd vor Mal abgesehen davon dass es nicht stimmen würde, da rand() ja jedesmal einen anderen Datensatz auswählen würde…
Kann mir bitte jemand auf die Sprünge helfen? Also einen anderen Lösungsansatz einwerfen? Vielleicht was mit vorgefertigten Abfragen / Views? Oder mir sagen wie ich die Ergebnismengen von 2 selects vereine? Und zwar nicht mit Union, weil das nur geht wenn die Attribute übereinstimmen? Sozusagen in der “Breite” einer Tabelle vereinen, nicht in der “Höhe”?
Danke im Vornherein!
Christoph.