Ankündigung

Einklappen
Keine Ankündigung bisher.

mysql mehrere felder aus 2 tabellen bei vorhandensein eines

Einklappen

Neue Werbung 2019

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

  • mysql mehrere felder aus 2 tabellen bei vorhandensein eines

    ich will alle felder aus tabelleA und zusätzlich das feld name aus tabelleB aber nur wenn die ID aus dem feld tabelleB in dem textfeld inthis in tabelleA vorhanden ist.

    und jetzt gehts los...

    SELECT id, name, inthis as isitin FROM tabelleA AND SELECT name FROM tabelleB WHERE tabelleB.id LIKE '%isitin%'

    oder wie ? oder wat ?

    Also alle Felder aus TabelleA und zusätzlich wenn TabelleA.inThis TabelleB.ID enthält auch TabelleB.Name

    mist ich krichn KOLLER !

  • #2
    Dann musst du wohl mit IF() arbeiten !!

    http://dev.mysql.com/doc/refman/5.1/...functions.html

    und dann solltest du das ganze nochmal überdenken .. weil SO geht das nicht !!!

    kanns tdoch die MySQL Abfrage nicht einfach der deutschen Grammatik anpassen ...

    Kommentar


    • #3
      SELECT TabelleA.*, TabelleA.inThis AS value FROM TabelleA LEFT JOIN (TabelleB) ON (TabelleB.ID LIKE '%value%')

      so ?

      Hier mit IF und so da gehts auch aber gibt der mir alle Datensätze von TabelleA zurück oder nur die in der IF() mit TabelleB übereinstimmen ?

      Kommentar


      • #4
        is there anybody out here ?

        Kommentar


        • #5
          fast

          .. LIKE CONCAT('%', TabelleA.inthis, '%')

          Hört sich aber schwer nach lausigem Datenbank-Design an:
          http://de.wikipedia.org/wiki/Normali...28Datenbank%29

          Kommentar


          • #6
            naja db design is selfmade ... bin nicht der pro das dazu
            danke für den CONCAT ich werds mal testen

            ich will mehreren objekten der einen tabelle mehrere der anderen zuweisen und umgekehrt, das würde ja wieder auf dein n:n format rauslaufen oder gibts da noch alternativen ?

            Kommentar


            • #7
              n:m heißt das

              Ja gibt es, eine Verknüpfungs-Tabelle

              linkTabelle1Tabelle2
              tabelle1_id | tabelle2_id

              Jede Verbindung speicherst du jetzt mit jeweiliger ID in dieser Tabelle.
              Alle Einträge aus Tabelle2 für Tabelle1_id holst du dann eben mit

              Code:
              SELECT
                tabelle2.*
              FROM
                linkTabelle1Tabelle2
              INNER JOIN
                  tabelle2
                ON
                  linkTabelle1Tabelle2.tabelle2_id = tabelle2.id
              WHERE
                linkTabelle1Tabelle2.tabelle1_id = X
              ab. Wobei X die ID ist, deren Entsprechungen du möchtest.
              Steht aber auch oben hinterm Link zu Normalisierung.

              Kommentar


              • #8
                naja so isset nu:

                PHP-Code:
                $qry mysql_query("SELECT docks.name AS dock, cranes.name AS crane FROM docks LEFT JOIN cranes ON (cranes.pos_dock_name LIKE CONCAT('%', docks.idnr ,'%'))"$conn); 
                und das bekomm ich raus:
                PHP-Code:
                Array
                (
                    [
                0] => south
                    
                [dock] => south
                    
                [1] => PiT_1
                    
                [crane] => PiT_1
                )
                Array
                (
                    [
                0] => south
                    
                [dock] => south
                    
                [1] => HansenFlash
                    
                [crane] => HansenFlash
                )
                Array
                (
                    [
                0] => east
                    
                [dock] => east
                    
                [1] => PiT_2
                    
                [crane] => PiT_2
                )
                Array
                (
                    [
                0] => east
                    
                [dock] => east
                    
                [1] => HansenFlash
                    
                [crane] => HansenFlash
                )
                Array
                (
                    [
                0] => west
                    
                [dock] => west
                    
                [1] => PiT_2
                    
                [crane] => PiT_2

                kann man dat irgendwie zusammenfassen nach array[dock] ?
                das es für south z.b. nur ein array gibt:


                PHP-Code:
                Array
                (
                    [
                dock] => south
                    
                [1] => PiT_1
                    
                [2] => HansenFlash

                oder so ähnlich... ?

                Kommentar


                • #9
                  ich glaub ich mach jetzt ne n:m ...

                  Kommentar


                  • #10
                    Zitat von cytrobic
                    kann man dat irgendwie zusammenfassen nach array[dock] ?
                    Entweder in dem du im MySQL Statement bereits WHERE dock = 'south' als Restriktion einbaust oder eben per PHP einen neuen Array erzeugen, in dem du das ganze zusammenfasst.

                    Kommentar

                    Lädt...
                    X