Ankündigung

Einklappen
Keine Ankündigung bisher.

SQL Abfrage WICHTIG !!!

Einklappen

Neue Werbung 2019

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

  • SQL Abfrage WICHTIG !!!

    Hallo, Jungs ich habe in mySQL 3 Tabellen

    Parameter (Par_Nr, Par_ID, Engl_Name, Deu_Name)
    Bezug (Par_Nr, SchlagW_Nr)
    SchlagW (SchlagW_Nr, SchlagW_Name)

    so ist nicht schwehr.

    Info:
    Parameter bekommen verschiedene Schlagwörter zugewiesen (über die Bezug Tabelle) ein Parameter kann einen oder auch mehrere Schlawörter besitzen. Über mehrere Chackboxen werden die Schlagwörter angeklickt und es werden die Parameter angezeigt die diese Schlagwörter haben.

    Frage:
    wenn ich bei UMTS (Schlagwort) ein häckhen mache, werden alle Parameter angezeigt die nur UMTS als Schlagwort haben oder UMTS und irgend welche andere. Wenn ich jetzt ein Häckhen bei UMTS und bei BSS mache, solle die Parameter angezeigt werden die beides haben UMTS und BSS ! die Parameter die nur UMTS oder nur BSS haben sollen in dem Fall nicht angezeigt werden. Und wenn ich noch bei irgend einem dritten Schlagwort ein häckhen mache, sollen die Parameter angezeigt werden die diese 3 Schlagwörter haben.
    Wie sieht die richtige Abfrage aus ? (das mit Chackboxen kriege ich noch hin bitte schreiben Sie mir erst nur die mySQL Abfrage zB für UMTS und BSS)


    die Abfrage ist nicht gans richtig, da bei dieser werden auch die Parameter angezeigt die als Schlagwort nur UMTS haben und kein BSS, und es sollen die Angezeigt werden die mindestens die beiden parameter haben UMTS und BSS.

    Code:
    SELECT 
    `parameter`.`Par_ID` , `parameter`.`Engl_Name`,   `parameter`.`Deu_Name` , `schlagw`.`SchlagW_Name` 
    
    FROM `parameter` 
    INNER JOIN `bezug` ON ( `parameter`.`Par_Nr` = `bezug`.`Par_Nr` ) INNER JOIN `schlagw` ON ( `bezug`.`SchlagW_Nr` = `schlagw`.`SchlagW_Nr`) 
    WHERE(`schlagw`.`SchlagW_Nr` = 1) OR (`schlagw`.`SchlagW_Nr` = 19)
    es ist sehr wichtig !

    VIELEN DANK !!!!!!!!!!!!!

  • #2
    Code:
    SELECT 
    `parameter`.`Par_ID` , `parameter`.`Engl_Name`,   `parameter`.`Deu_Name` , `schlagw`.`SchlagW_Name` 
    
    FROM `parameter` 
    INNER JOIN `bezug` ON ( `parameter`.`Par_Nr` = `bezug`.`Par_Nr` ) INNER JOIN `schlagw` ON ( `bezug`.`SchlagW_Nr` = `schlagw`.`SchlagW_Nr`) 
    WHERE(`schlagw`.`SchlagW_Nr` = 1) AND(`schlagw`.`SchlagW_Nr` = 19)
    Meinste das so ? [/list]

    Kommentar


    • #3
      mit AND habe ich auch probiert aber geht trotzdem nicht weiss auch nicht wieso

      Kommentar


      • #4
        kann mir keiner helfen ? ((

        Kommentar


        • #5
          Würde es etwa so aufbauen hoffe es hilft dir weiter


          <form>
          <input type='checkbox' name='SelectionArray[]' value='1'>UMTS
          </form>


          $SelectionString=implode(',',$_GET[SelectionArray]);


          SELECT
          `parameter`.`Par_ID` , `parameter`.`Engl_Name`, `parameter`.`Deu_Name` , `schlagw`.`SchlagW_Name`

          FROM `parameter`
          INNER JOIN `bezug` ON ( `parameter`.`Par_Nr` = `bezug`.`Par_Nr` ) INNER JOIN `schlagw` ON ( `bezug`.`SchlagW_Nr` = `schlagw`.`SchlagW_Nr`)
          WHERE `schlagw`.`SchlagW_Nr` in ( $SelectionString )

          Kommentar


          • #6
            Danke ber ich brauch nu die Abfrage, damit ich nur die Parameter ausgegeben werden die nur die Schlagwörter enthalten de ich angeklickt habe verwendet bitte für eine abfrage schlagw.SchlagW_Nr = 1 und schlagw. SchlagW_Nr = 19 als ob ich die beiden angeklickt habe. Danke !

            Kommentar


            • #7
              nein, es sollen nicht nur die Parameter ausgegeben werden die genau diese Schlagwörter haben, sondern MINDESTENS die beiden Schlagwörter, die Parameter können ja viele Schlagwörter haben.

              Kommentar


              • #8
                Vielleicht hilft das ihnen weiter wenn ich die Frage stelle ->

                Zeige mir
                parameter.Par_ID, parameter.Engl_Name, parameter.Deu_Name

                die mindestens die beiden Schlagwörter haben UMTS und BSS haben (die Schlagwortzuweisung findet in der Bezug Tabelle statt). Die Tabellenstruktur sieht bitte gans oben, 3 Tabellen.
                auf diese Frage brauche ich eine MySQL abfrage.
                Kann mir einer helfen ?

                Kommentar


                • #9
                  keiner kann mir helfen ((

                  Kommentar


                  • #10
                    Kann es sein, daß Du ein or anstatt ein and in der mysql-selectabfrage stehen hast?

                    Ich hab ja keine Ahnung, wofür die 1 und die 19 steht bei
                    Code:
                    WHERE(`schlagw`.`SchlagW_Nr` = 1) OR (`schlagw`.`SchlagW_Nr` = 19)
                    aber sollte die 1 beispielsweise stellvertretend für UMTS stehen und die 19 für BSS, so gibt er logischerweise ein Ergebnis aus, wenn BSS allein vorkommt oder aber UMTS allein vorkommt...

                    mit and hättest Du hier also ein anderes Ergebnis... dann müssen beide Werte vorhanden sein!

                    -Mein Vorschlag


                    kamalo

                    Kommentar

                    Lädt...
                    X