MySQL Query

msolt

Aktives Mitglied
Hi Leute,
ich bräuchte mal kurz Hilfe bei ner SQL Abfrage.
Ich möchte jeweils einen Wert (zufällig) aus 5 verschiedenen Tabellen abfragen.
Also z.B.
Tabell1 Wert 2, Tabelle2 Wert 1, Tabelle3 Wert 4, Tabelle4 Wert 5, Tabelle5 Wert 17

Was ich bis jetzt habe sieht so aus:
CODE
SELECT *
FROM Tabelle1
ORDER BY RAND( )
LIMIT 1


Wie am ( LIMIT 1 ) zu erkennen ist möchte ich jeweils nur einen Wert aus jeder Tabelle haben.

Könnt ihr helfen
unsure.gif
?

Grüße,
msolt


EDIT:
Also eine Kleinigkeit ist mir schon aufgefallen :)


CODE
SELECT Spalte2    <---
FROM Tabelle1
ORDER BY RAND( )
LIMIT 1
 
Ohne nähere Informationen sieht das ein bisschen so aus, als ob Dein Tabellendesign nicht so optimal ist. Warum hast Du unterschiedliche Tabellen angelegt? Evtl. wäre es vorteilhaft, alle Werte in eine Tabelle zu übernehmen, und dann eine Spalte zur Diskriminierung der unterschiedlichen Wertepaare einzurichten?

Für Deine Frage: über SQL wird das so einfach nichts, evtl. könntest Du mit Stored Procedures / Funktionen etwas tun. Wenn Du es ganz einfach machen willst, ersetze das "FROM Tabelle1" durch "FROM $tabelle", und weise Tabell schon in PHP (oder Deiner Programmiersprache) einen zufälligen Tabellennamen zu.

 
Einfach dein unteres Beispiel als Unterabfrage, die eine Zeile zurückgibt

Das ganze für jede Tabelle, also fünf Unterabfragen, die jeweils eine Zeile liefern, kommagetrennt kombiniert.
 
Zurück
Oben