PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So finden Sie alle Produkte mit bestimmten Multiattributwerten

Eine WHERE-Klausel kann jeweils nur Spalten aus einer Zeile betrachten.

Wenn Sie also eine Bedingung benötigen, die für zwei verschiedene gilt Zeilen aus einer Tabelle, müssen Sie diese Tabelle zweimal verknüpfen, damit Sie Spalten aus beiden Zeilen erhalten können.

SELECT p.*
FROM "products" AS p
INNER JOIN "custom_field_answers" AS a1 ON p."id" = a1."product_id"
INNER JOIN "custom_field_answers" AS a2 ON p."id" = a1."product_id" 
WHERE a1."value" = 'bangle' AND a2."number_value" < 50