tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
7
ZUGRIFFE
275
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    querytail querytail ist offline Mitglied Gold
    Registriert seit
    Jul 2010
    Beiträge
    116
    Hallo zusammen,

    ich möchte, dass eine Ausgabe nur dann erfolgt, wenn artid oder usid in einer der Spalten nicht vorkommt:

    PHP-Code:
    select order.* from order
                            where order
    .orderid $rid
                
    and artid NOT IN (select objectid from review
                           and 
    usid NOT IN (select us from review
                            
    order by order.artid 
    Leider funktioniert das so nicht, sodass ich mal wieder auf Hilfe angewiesen bin.

    Danke im Voraus.

    Grüße

    Michael Meyer
    Geändert von querytail (10.02.11 um 13:37 Uhr)
     

  2. #2
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.109
    Ich versteh dich noch nicht so ganz.

    Gibt es die Spalten artid und usid und jeder Wert soll in jeweils einer anderen Spalte nicht vorkommen oder soll keiner dieser Werte in einer anderen Spalte vorkommen oder wie?
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  3. #3
    querytail querytail ist offline Mitglied Gold
    Registriert seit
    Jul 2010
    Beiträge
    116
    Hallo,

    ja, usid und artid sind beides Spalten aus review.
    Wenn artid und usid beide vorkommen, soll keine Ausgabe erfolgen. Bei allem anderen soll die Ausgabe erfolgen.

    Ich habe den Text oben noch ein wenig geändert.
     

  4. #4
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Hi.

    Was denn nun?
    Zitat Zitat von querytail Beitrag anzeigen
    ich möchte, dass eine Ausgabe nur dann erfolgt, wenn artid oder usid in einer der Spalten nicht vorkommt
    Code sql:
    1
    2
    3
    4
    
    WHERE ORDER.orderid = $rid
      AND ( artid NOT IN (SELECT objectid FROM review) 
                OR
                usid NOT IN (SELECT us FROM review))
    Das ist etwas ganz anderes:
    Zitat Zitat von querytail
    Wenn artid und usid beide vorkommen, soll keine Ausgabe erfolgen. Bei allem anderen soll die Ausgabe erfolgen.
    Code sql:
    1
    2
    3
    4
    
    WHERE ORDER.orderid = $rid
      AND NOT ( artid IN (SELECT objectid FROM review) 
                AND
                usid IN (SELECT us FROM review))
    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  5. #5
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Unterabfrage dieser Art können sehr performance-bremsend sein

    Code sql:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    SELECT
        ORDER.*
    FROM
        ORDER
        LEFT JOIN review AS r1
            ON ORDER.artis = r1.objectid
        LEFT JOIN review AS r2
            ON ORDER.usis = r2.us
    WHERE
        ORDER.orderid = {$rid}
        AND NOT (r1.objectid IS NULL OR r2.us IS NULL)
    ORDER BY ORDER.artid
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  6. #6
    querytail querytail ist offline Mitglied Gold
    Registriert seit
    Jul 2010
    Beiträge
    116
    Puh, @yaslaw: Das bekomme ich derzeit nicht hin, weil usid (usis) nicht in order liegt, sondern ich dafür noch ein Subselect benötige.

    @deepthroat: Der 2. Code funktioniert.

    Vielen Dank an Alle.


    Edit: Jetzt habe ich das doch geschafft. Leider zeigt er mir genau das umgekehrte, nämlich nur die, wo beide Werte vorkommen.

    Code sql:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    SELECT
        ORDER.*
    FROM
        ORDER
        LEFT JOIN review AS r1
            ON ORDER.artis = r1.objectid
        LEFT JOIN review AS r2
            ON (SELECT USID FROM USER WHERE ID = $id) = r2.us
    WHERE
        ORDER.orderid = {$rid}
        AND NOT (r1.objectid IS NULL OR r2.us IS NULL)
    ORDER BY ORDER.artid
    Geändert von querytail (10.02.11 um 17:22 Uhr)
     

  7. #7
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Hi.

    Es müßte
    Code sql:
    1
    
    AND (r1.objectid IS NULL OR r2.us IS NULL)
    heißen.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  8. #8
    querytail querytail ist offline Mitglied Gold
    Registriert seit
    Jul 2010
    Beiträge
    116
    Strike, das funktioniert jetzt auch.

    Danke und schönes Wochenende

    Grüße

    Michael Meyer
     

Ähnliche Themen

  1. SAX und (J)DOM verbinden
    Von LostBoi im Forum Java Grundlagen
    Antworten: 3
    Letzter Beitrag: 08.10.09, 14:42
  2. Spring: RmiProxyFactoryBean versucht sofort zu verbinden; wie später verbinden?
    Von DarthShader im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 3
    Letzter Beitrag: 22.05.09, 16:41
  3. spline verbinden (segmente verbinden)
    Von flärbretli im Forum Cinema 4D
    Antworten: 2
    Letzter Beitrag: 21.03.06, 12:42
  4. verbinden?
    Von Saoron im Forum Cinema 4D
    Antworten: 3
    Letzter Beitrag: 25.11.05, 13:23
  5. PC mit TV verbinden
    Von ]Barret[ im Forum Microsoft Windows
    Antworten: 5
    Letzter Beitrag: 06.02.04, 17:15