Mehrere Spalten in Abfrage vergleichen

Sascha-LW

Benutzer
Beiträge
6
Hallo, ich hoffe ihr könnt mir helfen.
Ich habe eine Tabelle die ungefähr so aussieht:
ximg.php


Es geht um custom fields die zu einem Produkt angelegt wurden. Anhand dieser custom fields sollen Produkte nun gefiltert werden. Ich bekomme für jede custom_id einen wert geliefert der mit dem wert in dem feld custom_value der gleichen zeile verglichen werden soll.
Könnt ihr mir da helfen?
 
Werbung:
Ich bekomm geliefert: custom_id 10 = G und custum_id 11 = 50 und will nun alle product id's die darauf zutreffen,
in dem Fall die 21
 
OK, darauf bin ich auch schon gestoßen, aber leider zu keinem Vernünftigen Ergebniss gekommen. Könntest du das vllt bisschen genauer erklären?
 
Ich bekomm geliefert: custom_id 10 = G und custum_id 11 = 50 und will nun alle product id's die darauf zutreffen,
in dem Fall die 21

Wie bekommst Du das 'geliefert'? Mit Deinen Daten und Deiner Bedingung bekomme ich:

Code:
test=*# select * from sascha ;
 prod_id | cust_id |  cust_val
---------+---------+-------------
      21 |      10 | G
      21 |      11 | 50
      21 |      12 | 01,03,11
      25 |      10 | RG
      28 |      10 | RGB
      28 |      11 | 100
      28 |      12 | 01,05,12
     323 |      10 | G
     323 |      11 | 150
     323 |      12 | 01,02,03,11
(10 rows)

test=*# select * from sascha where (cust_id,cust_val) in ((10,'G'),(11,'50'));
 prod_id | cust_id | cust_val
---------+---------+----------
      21 |      10 | G
      21 |      11 | 50
     323 |      10 | G
(3 rows)
 
Vielen Dank für deine Hilfe!

Das ganze ist in einem php script, geliefert wird durch eine Eingabe.

Auf das Ergebnis von dir bin ich bisher auch gekommen, nur benötige ich nur die Produkte bei denen custom field 10 = G UND custom field 11 = 50.
Unter den Bedingungen sollte daher prod_id 320 rausfallen...
 
Vielen Dank für deine Hilfe!

Das ganze ist in einem php script, geliefert wird durch eine Eingabe.

Auf das Ergebnis von dir bin ich bisher auch gekommen, nur benötige ich nur die Produkte bei denen custom field 10 = G UND custom field 11 = 50.
Unter den Bedingungen sollte daher prod_id 320 rausfallen...


Ach so, Dann würde ich zu INTERSECT greifen:

Code:
test=*# select prod_id from sascha where (cust_id,cust_val) = (10,'G') intersect  select prod_id from sascha where (cust_id,cust_val) = (11,'50');;
 prod_id
---------
      21
(1 row)

Andreas
 
Bekomm leider nur den Fehler:
Code:
#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 'intersect SELECT product_id FROM test at line 3
 
Werbung:
Zurück
Oben