совершенно непонятно, что в вопросе делает PHP.
Указываете точную версию СУБД.
Выкладываете полные CREATE TABLE всех таблиц
product` (
`product_id` int(11) NOT NULL,
`model` varchar(64) NOT NULL,
`sku` varchar(64) NOT NULL,
`grup_id` varchar(128) NOT NULL,
`quantity` int(4) NOT NULL DEFAULT 0,
`stock_status_id` int(11) NOT NULL,
`image` varchar(255) DEFAULT NULL,
`manufacturer_id` int(11) NOT NULL,
`shipping` tinyint(1) NOT NULL DEFAULT 1,
`price` decimal(15,4) NOT NULL DEFAULT 0.0000,
`weight` decimal(15,8) NOT NULL DEFAULT 0.00000000,
`weight_class_id` int(11) NOT NULL DEFAULT 0,
`length` decimal(15,8) NOT NULL DEFAULT 0.00000000,
`width` decimal(15,8) NOT NULL DEFAULT 0.00000000,
`height` decimal(15,8) NOT NULL DEFAULT 0.00000000,
`length_class_id` int(11) NOT NULL DEFAULT 0,
`subtract` tinyint(1) NOT NULL DEFAULT 1,
`minimum` int(11) NOT NULL DEFAULT 1,
`sort_order` int(11) NOT NULL DEFAULT 0,
`status` tinyint(1) NOT NULL DEFAULT 0,
`viewed` int(5) NOT NULL DEFAULT 0,
`date_added` datetime NOT NULL
)
product_attribute` (
`product_id` int(11) NOT NULL,
`attribute_id` int(11) NOT NULL,
`language_id` int(11) NOT NULL,
`text` text NOT NULL
)
attribute` (
`attribute_id` int(11) NOT NULL,
`attribute_group_id` int(11) NOT NULL,
`sort_order` int(3) NOT NULL
)
attribute_description` (
`attribute_id` int(11) NOT NULL,
`language_id` int(11) NOT NULL,
`name` varchar(64) NOT NULL
)
Проконтролировать работоспособность - обязательно
Выкладываете пример данных в виде INSERT INTO
Можете сразу создать online fiddle и дать ссылку.
Выкладываете требуемый результат для именно этих данных. С подробным пояснением по практически каждой строке результата - "здесь так, потому что ...".
В моём запросе сразу по grup_id это предполагается вытащить...сразу для данного раздела по всем товарам...
Вы пытаетесь по каждому product_id получать "что-то" в своём запросе...а из задачи(как я понял) нужно по всем товарам в этом grup_id вытащить характеристики одинаковые...
Человеческим языком если...нужно же вывести те характеристики, которые ОДИНАКОВЫЕ У ВСЕХ В ДАННОМ РАЗДЕЛЕ (grup_id) ? Так же?)
SELECT a.attribute_id, ad.name, pa.text FROM product_attribute pa
LEFT JOIN attribute a ON (pa.attribute_id = a.attribute_id)
LEFT JOIN attribute_description ad ON (a.attribute_id = ad.attribute_id)
WHERE pa.product_id = '" . (int)$result['product_id'] . "' AND a.attribute_group_id = '" . (int)$product_attribute_group . "'
AND ad.language_id = '" . (int)$config_language_id . "' AND pa.language_id = '" . (int)$config_language_id . "' ORDER BY a.sort_order
Почему ДВА массива в первом примере? А не в одном?
product_attribute` (
`product_id` int(11) NOT NULL,
`attribute_id` int(11) NOT NULL,
`language_id` int(11) NOT NULL,
`text` text NOT NULL
Не надо слов, выложите вывод команды SHOW CREATE TABLE product; в теге кода.
CREATE TABLE `product` (
`id` int(11) NOT NULL,
`model` varchar(64) NOT NULL,
`quantity` int(4) NOT NULL DEFAULT '0',
`stock_status_id` int(11) NOT NULL,
`image` varchar(255) DEFAULT NULL,
`manufacturer_id` int(11) NOT NULL,
`shipping` tinyint(1) NOT NULL DEFAULT '1',
`price` decimal(15,4) NOT NULL DEFAULT '0.0000',
`points` int(8) NOT NULL DEFAULT '0',
`date_available` date NOT NULL DEFAULT '0000-00-00',
`weight` decimal(15,8) NOT NULL DEFAULT '0.00000000',
`weight_class_id` int(11) NOT NULL DEFAULT '0',
`length` decimal(15,8) NOT NULL DEFAULT '0.00000000',
`width` decimal(15,8) NOT NULL DEFAULT '0.00000000',
`height` decimal(15,8) NOT NULL DEFAULT '0.00000000',
`length_class_id` int(11) NOT NULL DEFAULT '0',
`subtract` tinyint(1) NOT NULL DEFAULT '1',
`minimum` int(11) NOT NULL DEFAULT '1',
`sort_order` int(11) NOT NULL DEFAULT '0',
`status` tinyint(1) NOT NULL DEFAULT '0',
`viewed` int(5) NOT NULL DEFAULT '0',
`noindex` tinyint(1) NOT NULL DEFAULT '1',
`date_added` datetime NOT NULL,
`date_modified` datetime NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Не надо слов, выложите INSERT INTO с примером данных и требуемый ответ запроса с пояснениями.
Я как-то вообще не наблюдаю в таблице ничего про поставщиков
А если у двух одинаковая минимальная цена с ненулевым количеством (которое тоже может быть одинаковым, кстати) - что выводить?
WHERE grup_id = $grup_id
правильно прописада ?
вроде работает правильно, но притормаживает
пробовала менять HAVING COUNT(*) > 1
на HAVING COUNT(*) = 5, так как в группе 5 товаров, вообще нечего не выводит
пробовала и 10 и 15 и 20, тот же результат, нечего