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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [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.
    Last edited by 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
Working...
X