christian: MySQL: Zwei unterschiedliche Tabellen gleichzeitig abfragen

Hallo,
ich habe zwei MySQL Tabellen in einer Datenbank. Grundsätzlich haben diese beide Tabellenn eine unterschiedliche Struktur. Einige Spalten stimmen jedoch (sowohl vom Datentyp, als auch von der Bezeichnung) überein. Wie kann ich beide Tabellen gleichzeitig abfragen?
Ich habe mit PHP folgende Abfrage gemacht:

SELECT * FROM tabelle1, tabelle2 WHERE id != '' ORDER BY datum DESC

Leider gibt es eine Fehlermeldung (supplied argument is not a valid MySQL result resource...), obwohl die Felder id und datum in beiden Tabellen vorhanden sind.

Findet jemand den Fehler?
Vielen Dank!!!
christian

  1. SELECT * FROM tabelle1 t1, tabelle2 t2
    WHERE t1.id=t2.id ORDER BY datum DESC;

    oder hab ich dich falsch verstanden?

  2. yo,

    Wie kann ich beide Tabellen gleichzeitig abfragen?

    das ist nicht schwierig und geht auf ganz unterschiedliche weise. wichig dabei ist aber, was willst du den als ergebnis haben ?

    Ilja

    1. das ist nicht schwierig und geht auf ganz unterschiedliche weise. wichig dabei ist aber, was willst du den als ergebnis haben ?

      Ich will als Ergebnis ein Array haben, welches die Informationen aus beiden TAbellen per Datum sortiert. Leider funktioniert das mit meiner Abfrage nicht

  3. echo $begrüßung;

    Leider gibt es eine Fehlermeldung (supplied argument is not a valid MySQL result resource...), obwohl die Felder id und datum in beiden Tabellen vorhanden sind.

    Das ist ein Folgefehler einer der PHP-Funktionen. Die mysql_*()-Funktionen geben durch ihren Rückgabewert bekannt, wenn ein Fehler aufgetreten ist. Der Rückgabewert ist dann nämlich false statt der sonst für die nachfolgende Funktion benötigten Ressourcen-Kennung. Wenn du diese Rückgabewerte ignorierst und einfach durchreichst bekommst du den von dir beobachteten Folgefehler. Was MySQL konkret zu bemängeln hatte sagt die Funktion mysql_error().

    SELECT * FROM tabelle1, tabelle2 WHERE id != '' ORDER BY datum DESC

    Vermutlich beschwert sich MySQL über das nicht eindeutige id. Es weiß nicht, ob du id von tabelle1 oder tabelle2 meinst. Das gleiche sicher auch bei datum.

    ich habe zwei MySQL Tabellen in einer Datenbank. Grundsätzlich haben diese beide Tabellenn eine unterschiedliche Struktur. Einige Spalten stimmen jedoch (sowohl vom Datentyp, als auch von der Bezeichnung) überein. Wie kann ich beide Tabellen gleichzeitig abfragen?

    Am besten mit zwei einzelnen Abfragen, die du mit UNION verbindest.

    echo "$verabschiedung $name";

    1. Am besten mit zwei einzelnen Abfragen, die du mit UNION verbindest.

      Hab ich gemacht und das funktioniert jetzt auch. Jetzt besteht allerdings das Problem, dass die Datensätze beider Tabellen nacheinander aufgeführt werden. Ich würde den ganzen Datensatz jedoch nach "datum" ordnen (in beiden Tabellen vorhanden), die Ergebnisse aus beiden Tabellen also vermischen. Das klappt bei UNION aber irgendwie nicht

      1. echo $begrüßung;

        Ich würde den ganzen Datensatz jedoch nach "datum" ordnen (in beiden Tabellen vorhanden), die Ergebnisse aus beiden Tabellen also vermischen. Das klappt bei UNION aber irgendwie nicht

        Oh doch, Das MySQL-Handbuch verrät dir die genaue Syntax dazu: http://dev.mysql.com/doc/refman/5.0/en/union.html

        echo "$verabschiedung $name";