двухтабличный запрс в базе

не знаю что было, перезагрузил сервак заработало вот это
Код:
SELECT COUNT(opcion.id) FROM tovar, opcion
WHERE tovar.id=opcion.id
AND tovar.id=$id AND opcion.id=$id
AND tovar.product > 0 AND opcion.opcion > 0
но подсчет идет только по таблице opcion а значения в таблице tovar не подсчитываются
я так понимаю потому что COUNT указывает только на таблицу opcion

не хочется делать 2 запроса и городить огород, хотя если по отдельности то все работает
Код:
$a= $this->db->query("SELECT * FROM tovar WHERE id=$id AND product > '0'");
$b= $this->db->query("SELECT * FROM opcion WHERE id=$id AND opcions > '0'");
echo $a->num_rows;
echo $b->num_rows;
 
попробуйте
SELECT COUNT(opcion.id) AS opcion ,COUNT(tovar.id) AS tovar FROM tovar, opcion
WHERE tovar.id=opcion.id
AND tovar.id=$id AND opcion.id=$id
GROUP BY opcion.id,tovar.id
HAVING COUNT(opcion.id) > 0 AND COUNT(tovar.id) > 0
 
и просто выводите переменную
echo $a;
echo $b;
там уже будут значения количества а не через подсчет строк
 
спасибо всем, в общем получилось вот так, может кому пригодится
SELECT SUM(total) AS total FROM
(SELECT count(*) AS total FROM
tovar p WHERE p.id = $id AND p.product > 0
UNION ALL SELECT count(*) AS total FROM option s WHERE s.id = $id AND s.options > 0) AS totals
результат
echo $a->row['total']
 
Назад
Сверху