Ankündigung

Einklappen
Keine Ankündigung bisher.

LEFT JOIN ID mit String

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • LEFT JOIN ID mit String

    Hallo zusammen,

    ich versuche bei einer Select Abfrage die Namen der Kategorien noch mit aufzunehmen, leider bekomme ich nur ein Ergebnis und nicht mehrere Ergebnisse.

    In kundenadressen.kategorieKon = 1,2 (es sind mehrere Werte enthalten welche mit Semikolon getrennt sind. In kategorien.name sollen beide Kategorienamen erscheinen.

    Code:
    SELECT concat('/kundenadressen/index/', kundenadressen.kdnAdId) As id, concat(kategorien.name,': ',kundenadressen.vorname,' ', kundenadressen.name , ' ', kundenadressen.ort, ' ', kundenadressen.firmenName) As name, '2037-01-01' As date
                    FROM kundenadressen
      left join
                        kategorien on katId = kundenadressen.kategorieKon
                    Where kundenadressen.firmenId = '".$user['companyId']."'
                    AND CONCAT('Adresse',kategorien.name, kundenadressen.firmenName,kundenadressen.vorname,kundenadressen.name,kundenadressen.ort) LIKE '%" . $searchArray[0] . "%'
    Komme einfach gerade nicht weiter bitte um Denkanstöße.
    Lieben Gruss Joachim


  • #2
    Zitat von JAssfalg Beitrag anzeigen
    Hallo zusammen,

    ich versuche bei einer Select Abfrage die Namen der Kategorien noch mit aufzunehmen, leider bekomme ich nur ein Ergebnis und nicht mehrere Ergebnisse.

    In kundenadressen.kategorieKon = 1,2 (es sind mehrere Werte enthalten welche mit Semikolon getrennt sind.
    Genau das ist Dein Problem. Fixe das.
    PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

    Kommentar


    • #3
      Hallo,
      soll ich die Werte in ein array zusammenfassen mit oder muss ich in der Datenbank das Ganze ändern. Wobei die doch mehrere Werte in einer Zeile Speichern kann oder ?
      Ich möchte einfach die ID's von den Kategorien die durch einen Semikolon getrennt sind in Namen auflösen.
      lg Joachim

      Kommentar


      • #4
        Array würde gehen, wenn das die DB kann. PostgreSQL kann sowas, MySQL nicht. Was verwendest Du? Und ja, Du kannst mehrere Werte in einer Zeile speichern, nicht aber in einer Zelle. Und ja, Du wirst das Design der Datenbank ändern müssen, Du wirst eine Zuordnungstabelle brauchen.
        PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

        Kommentar


        • #5
          Ich habe mysql habe auch gerade gesehen das es mit PostgreSql geht. Bisher sieht mein Design so aus.
          Adressen
          dnAdId int(11) No
          kdnAdIdOld int(11) No
          kdnr int(11) No
          firmenName varchar(100) No
          anrede varchar(50) No
          vorname varchar(100) No
          name varchar(100) No
          kategorienKon varchar(100) also 1,2,3 No
          Kategorien
          katId int(11) No
          name z.B.:Schauspieler No
          kategorie z.B.: Kontakte No
          color varchar(7) No
          firmenId int(11) No
          createUser int(11) No
          createDate datetime No
          updateUser int(11) No
          updateDate datetime No
          Und jetzt soll bei den Adressen eine ID stehen und bei den Kategorien nur ein Wert pro Zelle. Habe ich das richtig Verstanden ?
          Vielen Dank für deine Antwort

          Kommentar


          • #6
            weitere Tabelle mit adress-id, kategorie-id. jeweils als foreign key auf die primary keys der entsprechenden Tabellen. so einfach.
            PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

            Kommentar


            • #7
              kdnAdId varchar(100) z.B: 3001 No
              katId varchar(100)z.B: 1 No
              kdnAdId varchar(100)z.B: 3001 No
              katId varchar(100)z.B: 2 No

              Kommentar


              • #8
                Ids alle als int Type ablegen.
                Siehe auch https://de.wikipedia.org/wiki/Normalisierung_(Datenbank)

                Kommentar

                Lädt...
                X