...WHERE a_id = 'A' AND a_id = 'B'?

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

  • ...WHERE a_id = 'A' AND a_id = 'B'?

    Hi,

    ich steh gerade auf dem Schlauch.

    Meine Tabelle 'test' sieht folgendermaßen aus:

    PHP-Code:
    +------+------+
    p_id a_id |
    +------+------+
    1    A    |
    2    A    |
    3    A    |
    1    B    |
    2    C    |
    +------+------+ 
    Das Ziel ist es nun alle p_id's zu bekommen, die, die a_id 'A' UND 'B' haben (Ergebnis in diesem Fall: p_id 1!)

    Wie lautet die Abfrage?

    SELECT p_id FROM test WHERE ...?

    Vielen Dank im vorraus.

    Beste Grüße,
    Tiff
    Mein Projekt: Online Rechtschreibkontrolle (basierend auf PHP)

  • #2
    select p_id from test where a_id in ('A','B');

    so vielleicht?
    tutorial: peterkropff.de schattenbaum.de tut.php-quake.net
    documentation: php.net mysql.com framework.zend.com

    Die Nachtwache!

    Kommentar


    • #3
      Original geschrieben von Bugbuster
      select p_id from test where a_id in ('A','B');

      so vielleicht?
      Danke, leider nicht. Mit der Methode IN schaut er welche p_id's die att_id 'A' ODER 'B' haben. Das heißt, dass er mir alle p_ids ausgibt.
      Mein Projekt: Online Rechtschreibkontrolle (basierend auf PHP)

      Kommentar


      • #4
        achso meinste sowas:

        PHP-Code:
        SELECT p_id FROM `testwhere a_id 'A' and p_id in (select p_id from test where a_id ='B'
        Zuletzt geändert von Bugbuster; 04.02.2008, 23:01.
        tutorial: peterkropff.de schattenbaum.de tut.php-quake.net
        documentation: php.net mysql.com framework.zend.com

        Die Nachtwache!

        Kommentar


        • #5
          Sehr gut, klappt schonmal ...und was ist wenn weitere Felder hinzukommen also:

          PHP-Code:
          +------+------+
          p_id a_id |
          +------+------+
          1    A    |
          2    A    |
          3    A    |
          1    B    |
          2    C    |
          1    C    |
          +------+------+ 
          Jetzt möchte ich alle p_id's, die, die, a_id 'A', 'B' und 'C' haben?
          Wie würde deine Lösung hierfür aussehen?

          Ist dein Code wirklich die einzige Möglichkeit; gibt es nicht noch einen simpleren Weg?
          Mein Projekt: Online Rechtschreibkontrolle (basierend auf PHP)

          Kommentar


          • #6
            Wie würde deine Lösung hierfür aussehen?
            na dann streng ma dein köpfchen an ... andere leute geben mir dafür geld wenn ich ihnen das essen vorkaue

            gibt es nicht noch einen simpleren Weg?
            viele wege führen nach rom. es gibt sicherlich noch performantere lösungen ... da ich aber hauptsächlich mit oracle 8i Datenbanken arbeite ist mein Wissenschatz da etwas eingeschränkt.

            mfg
            bugbuster
            tutorial: peterkropff.de schattenbaum.de tut.php-quake.net
            documentation: php.net mysql.com framework.zend.com

            Die Nachtwache!

            Kommentar


            • #7
              Eigene Ansätze???

              Kommentar


              • #8
                Eigene Ansätze???
                *in übereinstimmung*
                tutorial: peterkropff.de schattenbaum.de tut.php-quake.net
                documentation: php.net mysql.com framework.zend.com

                Die Nachtwache!

                Kommentar


                • #9
                  Sorry bugbuster

                  PHP-Code:
                  SELECT DISTINCT p_id
                  FROM test
                  WHERE p_id
                  IN 
                  (

                  SELECT p_id
                  FROM test
                  WHERE a_id 
                  'A'
                  )
                  AND 
                  p_id
                  IN 
                  (

                  SELECT p_id
                  FROM test
                  WHERE a_id 
                  'B'
                  )
                  AND 
                  p_id
                  IN 
                  (

                  SELECT p_id
                  FROM test
                  WHERE a_id 
                  'C'

                  ...trotzdem: Einziger Lösungsweg?
                  Zuletzt geändert von tiff; 04.02.2008, 23:20.
                  Mein Projekt: Online Rechtschreibkontrolle (basierend auf PHP)

                  Kommentar


                  • #10
                    SELECT t1.p FROM test t1
                    JOIN test t2 ON t1.p = t2.p AND t2.a = 'b'
                    JOIN test t3 ON t1.p = t3.p AND t3.a = 'c'
                    WHERE t1.a = 'a'

                    Kommentar

                    Lädt...
                    X