Answer the question
In order to leave comments, you need to log in
Is it correct to write SQL query?
There are three tables: product, filter and attr.
I join all these tables using the JOIN operator as follows:
// использую sql класс прослойку https://github.com/Hazard2/PHP-MySQLi-Database-Class
$this->sql->join("attr", "product.id = attr.connect", "LEFT");
$this->sql->join("filter", "product.id = filter.connect", "LEFT");
// поиск продуктов с опр. параметрами в таблице filter
$this->sql->where('filter.filter', '3'); // тут id типа фильтра, в данном случае объем памяти
$this->sql->where('filter.value', '64Gb'); // соответственно значение
// и вот тут косяк, дело в том что таких условий к выше указанным столбцам несколько,
// можно было бы использовать оператор IN (64Gb, 32Gb ...)
// но в этом случае оператор ищет одно из значений в столбце,
// как же сделать так что бы можно было к одному столбцу несколько жестких значений,
// жестких значит они должны быть найдены.
$this->sql->where('attr.name', 'type');
$this->sql->where('attr.value', $this->interface->title);
$this->sql->where('product.visibility', 0);
$result = $this->sql->get('product', null, ['product.id', 'product.name', 'product.price']);
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question