Не что то не то я выложил
По любому идет первый запрос, собираем данные в цикле
вот потом второй с джоинами, а как сделать никак не соображу
$stmt = $pdo->query('SELECT * FROM certificate');
$go = '';
foreach ($stmt as $row) {
echo 'Название сертификата - '.$row['name'];
$go .= $row['id'];
}
$stmt = $pdo->query('SELECT compound.*, gost.*
FROM gost
LEFT JOIN compound ON gost.id = compound.id_gost
WHERE compound.id_certificate = '.$go);
foreach ($stmt as $row) {
echo 'ГОСТ - '.$row['name'];
}
CREATE TABLE IF NOT EXISTS `certificat` (
`c_id` int(244) NOT NULL AUTO_INCREMENT,
`name` text NOT NULL,
`code` int(11) NOT NULL,
`confirm` text NOT NULL,
PRIMARY KEY (`c_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `gost` (
`g_id` int(244) NOT NULL AUTO_INCREMENT,
`g_name` text NOT NULL,
`description` text NOT NULL,
`g_file` varchar(250) NOT NULL,
PRIMARY KEY (`g_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `compound` (
`id` int(244) NOT NULL AUTO_INCREMENT,
`certificat_id` int(11) NOT NULL,
`gost_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
INSERT INTO gost (g_name) VALUES
('ГОСТ 20448-90'),
('ГОСТ Р 52087-2003'),
('ГОСТ 13109-97'),
('ГОСТ Р 52201-2004');
INSERT INTO certificat (name, code, confirm) VALUES
('Масла моторные для дизельных двигателей ',300, 'П. 2. 2, табл. 2 (показатели 3, 4,7) '),
('Масла авиационные',300, ''),
('Масла моторные автотракторные',300, ''),
('Масла моторные для автотракторных дизелей',300, '');
INSERT INTO compound (certificat_id, gost_id) VALUES
(1,1),
(1,2),
(1,4),
(2,3),
(3,1),
(3,4),
(4,2);
$sql = $pdo->query('SELECT certificat.*, gost.*
FROM (certificat JOIN compound ON certificat.c_id = compound.certificat_id)
JOIN gost t ON compound.gost_id = gost.g_id');