sql - MYSQL group products by compatibilty -


i have 2 tables, 1 kits can contain various sub-products, , list of sub-products can't added in same kit.

in simplified form:

create table `kits` (     `subprodid` int(11) not null default '0',     `kitid` varchar(50) null default null,     `kitname` varchar(512) null default null,     primary key (`subprodid`) );  create table `subprod_incompatible` (     `incompid` int(11) not null default '0',     `subprodid` int(11) null default null,     `subprodincompid` int(11) null default null,     primary key (`versaincompid`) ) 

in subprod_incompatible, subprodid , subprodincompid exist subprodids in kits.

right use procedural code outside database produce list of kits contain products not conflict according subprod_incompatible table, i'd in sql if @ possible.

what i'd to

select `kitid`, `kitname`, group_concat(`subprodid`) ("a subquery") q group `groupingcriterion` 

"a subquery" should return columns of kits, along generated groupingcriterion.

here idea. each kit, list of matches incompatible table each subproduct. then, aggregate kit and incompatible id , see if have 2 products. if so, have incompatible products in kit:

select k.kitid, i.incompid kits k join      subprod_incompatible      on k.subprodid in (i.subprodid, i.subprodincompid) group k.kitid, i.incompid having count(distinct k.subprodid) = 2; 

Comments

Popular posts from this blog

javascript - Bootstrap Popover: iOS Safari strange behaviour -

Magento/PHP - Get phones on all members in a customer group -

session - Logging Out Using PHP -