Anzeige:
Ergebnis 1 bis 10 von 10

Thema: SQL Abfrage aus 2 Tabellen

  1. #1
    Registrierter Benutzer
    Registriert seit
    25.11.2000
    Ort
    Schneidlingen
    Beiträge
    21

    Post SQL Abfrage aus 2 Tabellen

    Hallo

    Wie kann ich mit MySQL eine Abfrage machen, aus der alle Daten aus 2 Tabellen abgefragt werden?
    Also so etwas wie "select * from table" nur mit 2 Tabellen.

  2. #2
    Registrierter Benutzer
    Registriert seit
    25.10.2001
    Ort
    Mönchengladbach
    Beiträge
    15

    Post

    Wenn die Tabellen richtig aufgebaut sind (Relationen) kannst du das mit einem LEFT JOIN Befehl machen. Schau mal unter www.little-idiot.de/mysql/ , da gibt's auch eine Online-Suche mit der du nach dem Befehl suchen kannst. Eine Beschreibung der Tabellen müsste ich schon wissen, um genaueres sagen zu können.

  3. #3
    Registrierter Benutzer
    Registriert seit
    25.11.2000
    Ort
    Schneidlingen
    Beiträge
    21

    Post

    Hi
    Bei Little-Idiot war ich schon, so ganz Blick ich da nicht durch...
    Also die zwei Tabellen sind identisch aufgebaut: 5 Spalten (id, interpret, titel, medium, bemerkungen).

  4. #4
    Registrierter Benutzer Avatar von lolli
    Registriert seit
    20.09.2000
    Beiträge
    166

    Post

    hi,
    versuche mal folgendes:

    select * from table1,table2;

    oder auch bei bestimmten feldern:

    select table1.feld1,table2.feld2,table2.* from table1,table2 where table1.userid=table2.kdnr;

    sind nur beispiele...musste schon selbst noch anpassen...

    oliver

  5. #5
    Registrierter Benutzer
    Registriert seit
    25.11.2000
    Ort
    Schneidlingen
    Beiträge
    21

    Post

    Hab ich auch schon probiert, aber ich bekomme immer nur die Daten aus der ersten Tabelle (also die, die vorne steht).

  6. #6
    Registrierter Benutzer Avatar von lolli
    Registriert seit
    20.09.2000
    Beiträge
    166

    Post

    wie sehen denn die tabellen (spalten-namen) und das sql-statement aus?

    oliver

  7. #7
    Registrierter Benutzer
    Registriert seit
    25.11.2000
    Ort
    Schneidlingen
    Beiträge
    21

    Post

    Also folgendes:
    Beide Tabellen sind folgendermaßen aufgebaut: 3 Spalten (id, interpret, titel), Tabelle 1 heißt "mp3_1", Tabelle 2 heißt "mp3_2".
    Erstes SQL-Statement sieht so aus:

    SELECT * FROM mp3_1,mp3_2;
    Dann bekomm ich immer nur die Daten aus der Tabelle, die vorne steht (mp3_1).

    SELECT mp3_1.id,mp3_2.id FROM mp3_1,mp3_2;
    Hier ist das Problem, dass ich einzelne Spalten aus beiden Tabellen nebeneinander ausgegeben bekomme. Also erste Spalte ist id Feld von mp3_1, zweite Spalte ist id Feld von mp3_2 usw.

    Ich will das ganze aber Zeilenweise ausgegeben bekommen, also Zeilen aus der ersten Tabelle und dann die Zeilen aus der zweiten Tabelle.

  8. #8
    Pingu
    Gast

    Post

    Hi,

    also wenn ich es richtig verstehe, willst du erste beide Tabellen kombinieren und dann eine Abfrage machen, um die gewünschten Daten zu erhalten?

    Hierfür gibt es kein Statement.

    Alles was meine Vorredner angesprochen haben, ist nur mit Referenzen möglich, d.h. es gibt zei Tabellen verschiedene Daten und zusätzlich eine Referenz (z.B. eine ID) ie in beiden Tabellen pro Datensatz gleich ist.

    Das ganze sieht mir auch fast so aus, als wenn Du Dir mal über Dein Datenbankdesign Gedanken machen solltest, d.h. beide Tabellen kombinieren.
    Wenn dies aus irgendwelchen Gründen überhaupt nicht geht, dann bleibt Dir wohl nur der Weg über zwei getrennte Abfragen, dann die beide Ergebnisse zu kombinieren. Oder eben erst beide Tabellen kombinieren (notfalls über eine temporäre Tabelle) und dann die eine Abfrage durch zu führen.

    -= Pingu =-

  9. #9
    Registrierter Benutzer
    Registriert seit
    05.10.2002
    Ort
    Erfurt
    Beiträge
    7

    Question

    Wie verhaelt es sich aber dann, wenn die Tabellen nicht verknuepft sind?

    So zum Beispiel

    Tabelle admin
    enthaelt Formatierungen usw.
    abgefragt werden soll

    SELECT * FROM admin

    Tabelle daten
    enthaelt die Daten
    abgefragt werden soll

    SELECT * FROM daten ORDER BY id DESC

    Nun will ich in einem Dokument die kompletten Daten von daten ausgeben (z.B. News mit Datum, Titel und Autor) und die Formatierung soll aus der admin ausgelesen werden (z.B. Schriftart, Schriftfarbe usw.)

    Kann ich denn dann ein

    SELECT daten.*, admin.* FROM daten ORDER BY id DESC, admin

    vornehmen? Oder habe ich da was nicht verstanden?

    Sorry, ich bin wirklich noch blutiger Anfaenger

  10. #10
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    Also wenn du sowas machst, dann kommt im normalfall riesen schrott raus, weil er jeden Datensatz aus Tabelle 1 mit jedem Datensatz aus Tabelle 2 verknüpft....

    Mal abgesehen davon funktioniert dein Statement eh nicht... wenn dann müsste es so in der Art heissen:

    SELECT d.*, a.* FROM daten AS d, admin AS a ORDER BY a.id DESC


    Das was du ursprünglich machen willst, nämlich zwei Tabellen miteinander verknüpfen ist wie oben schon gesagt mit einem LEFT JOIN zu realisieren!


Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •