Willkommen bei Entwickler-Forum.
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 16
  1. #1
    Neuer Benutzer
    Registriert seit
    04.10.2016
    Beiträge
    6

    Standard 2 Tabellen per JOIN miteinader verknüpfen

    Gudde ihr Lieben,

    zu allererst, ich bin nicht sooo bewandert in SQL, hatte es vor 2 Jahren mal in der Schule gehabt..
    Jetzt zu meinem Problem:

    ich schlage mich jetzt schon seit 2-3 std mit einer Kleinigkeit rum die eigentlich nicht der Rede wert ist...
    Ich habe 2 Tabellen einmal haendler und einmal adressdaten, sowohl die Tabelle haendler als auch die Tabelle adressdaten haben eine id spalte welche mit auto increment deklariert ist.
    Jetzt will ich per Befehl eine Zuweisung anstoßen so das der haendler mit der ID 1 den adressdaten mit der ID 1 zugeordnet wird.
    Mein eingestaubtes und sowieso kaum vorhandes Wissen kam am Anfang auf die INNER JOIN variante.. bekamm da aber nur leeren Wert zurück.
    Dann erinnerte ich mich an LEFT JOIN, damit funkitonierte es aber auch nicht so das in der Tabelle haendler die ID von der Tabelle adressdaten eingetragen wurde, in der Tabelle haendler ist natürlich eine entsprechende Spalte für die adressdatenID vorhanden..
    Also entweder ist mein Ansatz komplett falsch oder ich habe eine winzig kleine kleinigkeit übersehen xD

    Ich hoffe ich konnte es halbwegs verständlich erklären

    Gruß Klapp3k
    Geändert von Klapp3k (04.10.2016 um 17:31 Uhr)

  2. #2
    Stammgast
    Registriert seit
    24.10.2011
    Beiträge
    1.261

    Standard

    Sei doch bitte so nett und poste hier die Tabellendefinition und Deine beiden Join Versuche. Letztere wären beide ein gangbarer Weg, je nach Anforderung. Da bei Dir kein Ergebnis erscheint, scheint aber das Problem woanders zu liegen.
    Gruß, defo

  3. #3
    Stammgast
    Registriert seit
    18.07.2008
    Beiträge
    3.036

    Standard

    Nur um Missverständnisse aufzuklären: Ein JOIN ist nicht zum Schreiben da. Weil Du schreibst Du möchtest Dem Kunden eine Adresse zuordnen. Für die Zuordnung musst Du selbst sorgen. Du musst praktisch in der Tabelle mit den Adressen einen Datensatz anlegen, Dir dessen ID holen und diese dann in der Kunden Tabelle ablegen. Danach kannst Du beim Lesen über einen JOIN diese Daten miteinander verknüpfen. Für den Fall dass es in der Kunden Tabelle ein Feld adress_id gibt was in der Adress Tabelle auch so heisst, sieht die Abfrage so aus:

    Code:
    SELECT *
    FROM adresse a
    JOIN kunde k WHERE a.adress_id = k.adress_id

  4. #4

  5. #5
    Neuer Benutzer
    Registriert seit
    04.10.2016
    Beiträge
    6

    Standard

    Hallöchen,

    danke für eure Antworten, konnte leider letzte Woche krankheitsbedingt nicht an meiner Datenbank arbeiten.
    Okay also kann ich mit JOIN nicht Tabelleneinträge zusammenschreiben z.B die AdressID die in beiden Tabellen vorhanden ist?

    Ach ja meine beiden JOIN Versuchen waren bis jetzt:

    Code:
    SELECT IDadresse
    FROM haendler
    LEFT JOIN adressdaten
    ON (haendler.IDadresse = adressdaten.AdressID )
    ;
    Und der andere Versuch war:
    Code:
    SELECT IDadresse
    FROM haendler
    JOIN adressdaten
    ON (haendler.IDadresse = adressdaten.AdressID )
    ;
    Ich erhalte beim Joinen keine Fehlermeldung...nur bekomme ich auch nix angezeigt.
    Um mir Daten aus einer anderen Tabelle zu holen und diese in die andere reinzuschreiben, so wie es fanderlif geschrieben hat, müsste ich eine WHILE Schleife schreiben, oder?

    Gruß Klapp3k

  6. #6
    Stammgast
    Registriert seit
    18.07.2008
    Beiträge
    3.036

    Standard

    Man kann schon UPDATE Statements schreiben die ein SELECT beinhalten. Wenn Du wirklich in die Kundentabelle die AdressID verwenden willst die dieselbe wie die HaendlerID ist, dann kannst Du folgendes machen:

    Code:
    UPDATE Haendler SET AdressID = Haendler
    Und natuerlich dann den Commit nicht vergessen, wenn es das tut was Du willst

  7. #7
    Neuer Benutzer
    Registriert seit
    04.10.2016
    Beiträge
    6

    Standard

    Okay cool danke dir :-)
    aber ich will ja das in der Tabelle haendler in der Spalte IDadresse die ID aus der Tabelle adressdaten reinkommt.
    Wenn ich das jetzt so schreibe wie oben beschrieben dann bekomme ich den Fehler: "#1054 - Unknown column 'AdressID' in 'field list'"

    Schreibe ich den Befehl so:
    UPDATE Haendler SET IDadresse = adressdaten.AdressID;

    bekomme ich den gleichen Fehler :-/

  8. #8
    Stammgast
    Registriert seit
    18.07.2008
    Beiträge
    3.036

    Standard

    Na aber woher soll er denn dann wissen welche Adresse er welchem Haendler zuordnen soll? Oder ist die HaendlerID dieselbe wie die AdressID? Typischerweise ist das nicht so und man sollte sich auch nicht drauf verlassen dass das fuer immer so bleibt.

  9. #9
    Neuer Benutzer
    Registriert seit
    04.10.2016
    Beiträge
    6

    Standard

    Naja da jeder Hänlder eine Adresse hat, sind es im Grunde genommen genausoviel ID´s in beiden Tabellen vorhanden. Ich musste das Problem auf die schnelle lösen, und habe mir aus dem phpAdmin eine csv datei gezogen und dann die AdressID in der Händler Tabelle quasi "manuel" vergeben...
    Die Datenbank musst leider schnell zur anderen Abteilung, aber ich würde gerne wissen wie den die elegante Lösung gewesen wäre ;-)

  10. #10
    Stammgast
    Registriert seit
    18.07.2008
    Beiträge
    3.036

    Standard

    na wenn die verschiedene IDs haben, dann geht das gar nicht. Woher soll denn ein Stueckchen Code Wissen zu welchem Kunden welche Adresse gehoert?

 

 
Seite 1 von 2 1 2 LetzteLetzte

Lesezeichen

Berechtigungen

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