Finding all the rows with 2 conditions using SQL (separate tables) -


i'm having problems plain old sql queries (drawback of using orms of time :)).

i'm having 2 tables, products , rules. in table rules have defined rules products. want write query products have defined rules.

rules defined 2 ways:

  1. you can specify rule 1 product (productid have value, sectorid null)
  2. you can specify rule more 1 product using sectorid (productid null)

result need have products have rule (product.id - rule.productid) products defined in sectors in rules table (product.sectorid - rule.sectorid).

also, result can't have duplicate products (products defined productid in rules or sectorid)

example:

products

id  sectorid 1   1 2   1 3   1 4   2 5   3 6   3 

rules

id productid sectorid 1  1         null 4  null      1 5  6         null 

expected result

products ids : 1, 2, 3, 6 

simplest way can think of, not quickest.

select * products p        exists (select * rules r p.id = r.productid or p.sectorid = r.sectorid) 

Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

qt - Errors in generated MOC files for QT5 from cmake -