[MSSQL] WHERE-Klausel in Subselect nicht berücksichtigt?

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

  • [MSSQL] WHERE-Klausel in Subselect nicht berücksichtigt?

    Mysql, nicht MSSQL

    In Tabelle a befinden sich verschiedene Produkte, in Tabelle b die jeweiligen Angebote.

    Anfänglich hatte ich diese in 2 separaten Abfragen abgearbeitet, also zu jedem Produkt die Anzahl und den kleinsten Preis der jeweiligen Angebote abgefragt. Aufgrund geänderter Anforderungen muss ich diese jetzt jedoch zu einer Abfrage zusammenfügen, was defakto auch kein Problem darstellt.

    Jedoch setze sich die WHERE-Klausel der inneren Abfrage aus folgenden Überprüfungen zusammen:
    PHP-Code:
    if($ean$str "`ean` = '$ean'";
    if(
    $isbn)
    {
      if(
    $str$str .= " OR `isbn` = '$isbn'";
      else 
    $str "`isbn` = '$isbn'";
    }
    if(
    $name)
    {
      if(
    $str$str .= " OR `article` = '$name'";
      else 
    $str "`article` = '$name'";

    Dies ist erforderlich, da beispielsweise nicht jedem Produkt ein Wert für EAN zugewiesen ist.

    So, nun habe ich meine Abfragen mittels Subselects und folgender WHERE-Klausel zusammengefügt:

    Code:
    WHERE (a.article = b.article AND a.article IS NOT NULL) 
    OR (a.isbn = b.isbn AND a.isbn IS NOT NULL) 
    OR (a.ean = b.ean AND a.ean IS NOT NULL)
    Allerdings scheint es, als würde die WHERE-Klausel im Subselect nicht beürcksichtigt.

    Die gesamte Abfrage:
    Code:
    SELECT a.*, 
    (SELECT MIN(b.price) FROM `shops_products` b 
    WHERE (a.article = b.article AND a.article IS NOT NULL) 
    OR (a.isbn = b.isbn AND a.isbn IS NOT NULL) 
    OR (a.ean = b.ean AND a.ean IS NOT NULL) 
    AND b.deleted IS NOT NULL) AS min FROM `products` a 
    WHERE `category` = '$CATID'  AND a.deleted IS NULL 
    ORDER BY a.article ASC LIMIT $_START, $_PPP
    Edit: Gelöst. Klassisches NULL-Problem.
    Zuletzt geändert von Crake; 27.03.2008, 22:29.
    [COLOR=red]Gesellschaftsforum.net[/COLOR] - Projekt zur Wiederbelebung der Diskussionskultur im Internet
    [COLOR=orange]1st News[/COLOR] - Das Newsletterscript für den professionellen Einsatz
Lädt...
X