mySQL: Teildaten aus 2 Tabellen sortiert auslesen

hiltwin

Mitglied
Hallo miteinander,

ich hab folgende Struktur in 2 Tabellen:

Tabelle 1:
Spalten Nummer, Name
Tabelle 2:
Spalten Nummer, Werte

Dabei sind die Nummern in den Tabellen identisch.

Ich möchte jetzt folgende Information bekommen:

Alle Datensätze, deren Nummern > 100 sind und die Werte >1
und diese dann noch alphabetisch nach Name sortiert.

Bekomme ich diese Infos direkt (und wenn wie) per mySQL-Abfrage raus, oder muss ich da noch mit PHP weitermachen?

Danke für Anregungen....
 
Da du leider kein richtiges Tabellen-Schema angegeben hast, kann man sich die meisten Dinge nur denken. Du solltest dich einmal näher mit SQL beschäftigen. Schlagworte wären z.B. JOIN in deinem Fall ein INNER JOIN.

SELECT * FROM tabelle1 INNER JOIN tabelle2 WHERE num > 100 AND werte > 1 ORDER BY name DESC bzw. ASC

(weiß nicht genau, ob MySQL soweit dem Standard entspricht, dass es bei INNER-JOINS automatisch Primärschlüssel und importierten Fremschlüssel Beziehungen erkennt. Hängt wahrscheinlich davon ab, wie du die Tabelle erstellt hast)

oder die etwas ältere Syntax würde lauten:

SELECT * FROM tabelle1 AS t1, tabelle2 AS t2 WHERE t1.num = t2.num AND t1.num > 100 AND t2.werte > 1 ORDER BY t1.name DESC bzw. ASC


EDIT: Das Ganze setzt natürlich voraus, dass es eine (Primär-)Schlüsselbeziehung gibt und in einer Tabelle nicht beliebig viele Spalten mit der selben Nummer existieren. Sollte dies der Fall sein, muss man zunächst Mengen bilden (Schlagwort z.B. IN, NOT IN... Hinweis: NULL darf laut dem Standard nicht in der Menge enthalten sein) und mit diesen Arbeiten. Allerdings gestaltet sich das schon ein wenig komplizierter.
 
Zuletzt bearbeitet:
Zurück