Forum: MySQL |
Thema:
SQL Abfrage liefert keine (besser: leere) Ergebnisse zurück: warum? |
Von:
G. Guest (
18.07.2005 10:42) |
Hallo,
habe nun eine SQL Abfrage "zusammengebaut", die meiner Meinung nach auch einen Wert finden müsste. Tut sie aber (leider) nicht. Hier mal die Abfrage mit den Tabellen (zur Übersicht ein wenig formatiert, steht sonst alles in einer langen Zeile):
Select String:
select distinct p.products_image,
pd.products_description,
m.manufacturers_id, p.products_id,
pd.products_name,
p.products_price,
p.products_tax_class_id,
IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price,
IF(s.status, s.specials_new_products_price, p.products_price) as final_price
From String:
from products p left join manufacturers m using(manufacturers_id),
products_description pd left join specials s on p.products_id = s.products_id,
categories c,
products_attributes pa left join products_options_values pov on pa.options_values_id=pov.products_options_values_id,
products_to_categories p2c
Where String:
where p.products_status = '1'
and p.products_id = pd.products_id
and pd.language_id = '2'
and p.products_id = p2c.products_id
and p2c.categories_id = c.categories_id
and pa.products_id=p.products_id
and (
(pd.products_name like '%luft%' or p.products_model like '%luft%' or m.manufacturers_name like '%luft%' or pov.products_options_values_name like '%luft%' or pd.products_description like '%luft%')
and (pd.products_name like '%sand%' or p.products_model like '%sand%' or m.manufacturers_name like '%sand%' or pov.products_options_values_name like '%sand%' or pd.products_description like '%sand%')
and (pd.products_name like '%Topf%' or p.products_model like '%Topf%' or m.manufacturers_name like '%Topf%' or pov.products_options_values_name like '%Topf%' or pd.products_description like '%Topf%')
)
Order String:
order by pd.products_name
wobei p (also products):
products_id;products_quantity;products_model;products_image;products_price;produ
cts_date_added;products_last_modified;products_date_available;products_weight;pr
oducts_status;products_tax_class_id;manufacturers_id;products_ordered
381;1;0.0002;products/NOPIC.JPG;6.8534;2005-02-10 14:27:09;2005-07-17 19:21:27;NULL;1.00;1;1;0;0
wobei pd (also products_description):
products_id;language_id;products_name;products_description;products_url;products
_viewed
381;2;0.0002;Blumenvase "pepino" mit Topf;;19
wobei p2c (also products_to_categories):
products_id;categories_id
381;15
wobei c (also categories):
categories_id;categories_image;parent_id;sort_order;date_added;last_modified
15;;0;0;2005-07-17 19:21:22;2005-07-17 19:21:22
wobei pa (also products_attributes):
products_attributes_id;products_id;options_id;options_values_id;options_values_p
rice;price_prefix
1379;381;1;2;0.0000;+
1378;381;2;4;0.0000;+
wobei m (also manufacturers) komplett leer ist:
manufacturers_id;manufacturers_name;manufacturers_image;date_added;last_modified
wobei pov (products_options_values):
products_options_values_id;language_id;products_options_values_name
1;2;keine_Angabe
2;2;Luft
3;2;Lehm
4;2;Sand
Wie ersichtlich, gibt es den Wert (ID = 381) 0.0002, Blumenvase "pepino" mit Topf dem die Optionen Luft und Sand zugeordnet sind in der Datenbank.
Wenn ich z.B. nur nach Topf und Sand (oder Topf und Luft) suche, wird der Wert auch gefunden. Die Suche scheitert aber, sobald ich nach zwei Optionen suche (in diesem Falle nach Sand und Luft).
Nehme mal stark an, dass meine Abfrage nicht mit den zwei (oder mehr) Einträgen in der Tabelle products_options_values zurechtkommt. Aber wie kann ich das anpassen?
Gruß und Dank,
Hans
Betreff |
Von |
Datum |
|
|
G.
Guest
|
18.07.2005 13:08 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!