Ankündigung

Einklappen
Keine Ankündigung bisher.

UNION SELECT und MINUS in mysql

Einklappen

Neue Werbung 2019

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

  • UNION SELECT und MINUS in mysql

    Hallo,ich versuche verzweifelt ein MINUS hinzubekommen,welches in mysql nicht geht:
    PHP-Code:
    SELECT user_id FROM prof_img a WHERE p_img_visible=
    UNION DISTINCT 
    SELECT user_id FROM prof_text b WHERE p_text_visible
    =1
    MINUS
    SELECT user_id FROM account WHERE aktiv
    ="B" 
    ich habs auch versucht mit LEFT JOIN:
    PHP-Code:
    SELECT user_id FROM prof_img a WHERE p_img_visible=
    UNION DISTINCT 
    SELECT user_id FROM prof_text b WHERE p_text_visible
    =1
    LEFT JOIN account c
    ON a
    .user_id AND b.user_id
    WHERE c
    .aktiv="B" 
    Leider bekomme ich immer syntaxfehler
    vielleicht wisst ihr wie man das macht?


  • #2
    Was soll denn ein "Minus" Sein?
    Leider bekomme ich immer syntaxfehler
    Die Fehlermeldung ist natürlich total uninteressant...
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Am einfachsten wäre wohl ein Sub-Query mit einem NOT IN() statt dem MINUS.

      Kommentar


      • #4
        Zitat von tkausl Beitrag anzeigen
        Was soll denn ein "Minus" Sein?
        https://www.google.de/?gws_rd=ssl#q=sql+minus
        PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

        Kommentar


        • #5
          Zum besseren Verständnis:
          Also die Abfage soll aus den tabellen prof_img und prof_text die user ids finden,welche bei der den status 1 haben,wobei es genügt,wenn einer der beiden diesen status besitz(UNION DISTINCT).Dann möchte ich allerdings noch alle ids auschließen die gerade bearbeitet ("B") sind.
          Darus folgt: abfrageA - abfrage B ergibt die Menge die ich haben will.

          Kommentar


          • #6
            Zitat von tkausl Beitrag anzeigen
            Die Fehlermeldung ist natürlich total uninteressant...
            Falls das nicht ironisch gemeint war:
            #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT JOIN account c
            ON a.user_id AND b.user_id
            WHERE c.aktiv="B"

            Kommentar


            • #7
              Zitat von easyAnfaenger26 Beitrag anzeigen
              Darus folgt: abfrageA - abfrage B ergibt die Menge die ich haben will.
              Minus oder Exept. Falls Du MySQL hast: das kann keines davon.
              PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

              Kommentar


              • #8
                ja ich hab mysql in xampp.
                soll ich jetzt einfach zu postgreSQL wechseln oder muss ich da umlernen,bzw. geht das in phpmyadmin?

                Kommentar


                • #9
                  Zitat von easyAnfaenger26 Beitrag anzeigen
                  soll ich jetzt einfach zu postgreSQL wechseln
                  Deine Entscheidung
                  oder muss ich da umlernen,
                  Ja. Plötzlich funktionieren die Dinge wie erwartet.
                  bzw. geht das in phpmyadmin?
                  Gar nicht. PMA ist nur ein (beschissener) Client.
                  PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

                  Kommentar


                  • #10
                    Das kannte ich wirklich noch nicht
                    Sollte man sowas nicht auch (meißtens) mit ner umgedrehten Where-Condition (+ joins wenn nötig) lösen können?
                    Zitat von nikosch
                    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

                    Kommentar


                    • #11
                      Zitat von tkausl Beitrag anzeigen
                      Das kannte ich wirklich noch nicht
                      Sollte man sowas nicht auch (meißtens) mit ner umgedrehten Where-Condition (+ joins wenn nötig) lösen können?
                      Was machst, wenn da 2 oder mehr Tabellen involviert sind? Ein UNION bekommst auch ned mit WHERE hin. Andere Baustelle halt.
                      PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

                      Kommentar


                      • #12
                        Zitat von tkausl Beitrag anzeigen
                        Sollte man sowas nicht auch (meißtens) mit ner umgedrehten Where-Condition (+ joins wenn nötig) lösen können?
                        Ganz Allgemein kannst du den Union auch in ein Subquery packen und den mit einem LEFT JOIN filtern.

                        PHP-Code:
                        SELECT
                           o
                        .*
                        FROM
                           
                        (
                             
                        SELECT user_id FROM prof_img a WHERE p_img_visible=
                             UNION DISTINCT 
                             SELECT user_id FROM prof_text b WHERE p_text_visible
                        =1
                           
                        ) AS o LEFT JOIN account c
                        ON o
                        .user_id c.user_id AND c.aktiv 'B'
                        WHERE c.user_id IS NULL 

                        Kommentar


                        • #13
                          wow,das funktioniert DANKE
                          schade das mysql so kompliziert ist..

                          Kommentar


                          • #14
                            Zitat von easyAnfaenger26 Beitrag anzeigen
                            wow,das funktioniert DANKE
                            schade das mysql so kompliziert ist..
                            So lange Du noch einen Würgaround findest, ... aber MySQL ist nicht kompliziert sondern primitiv. Das macht den Umgang damit ab und an vielleicht kompliziert.
                            PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

                            Kommentar

                            Lädt...
                            X