Сводка данных из 2-х таблиц UNION, почему то данные из второй таблицы объединяет, а не выводит по отдельности в зависимости от номера процедуры
Объединил 2 таблицы
SELECT id, 'Процедура', status, product, base, cost_product, cost, points, date, card_id
FROM action
WHERE card_id ='$search'
UNION
SELECT sale_id, 'Продажа', NULL, sale_id, NULL, name, SUM(sum), points, date, card_id
FROM sale
WHERE card_id ='$search'
Вывожу данные из них
<div class="row">
<div class="col-md-12">
<div class="card">
<div class="card-header"><h3>История клиента</h3></div>
<div class="card-body">
<table class="table">
<tr><th>Исполнитель</th><th>Действие</th><th>Статус</th><th>Процедура</th><th>Компоненты/Комментарии/Товар</th><th>Общая стоимость</th><th>Баллы</th><th>Время окончания</th></tr>
<?
while($search = mysqli_fetch_assoc($q)) //для обработки неск. записей //Уменьшить размер шрифта??
{
// echo "<pre>";
//var_dump($search);
// echo "</pre>";
$sale_id = $search['product'];
$card_id = $search['card_id'];
$action_id = $search['id'];
$q_items = mysqli_query($link, "SELECT * FROM action_items WHERE action_id = '$action_id'");
?>
<tr>
<td>Ускова Карина</td>
<td><?=$search['Процедура']?></td>
<td><a href="/bootstrap/sale.php?order_id=<?=$search['product']?>"><?=$search['product']?><a/><a><?=$search['status']?><a/></td>
<td><?
while ($row_action = mysqli_fetch_assoc($q_items))
{
$checkbox_id = $row_action['checkbox_id'];
$q_act = mysqli_query($link, "SELECT * FROM checkbox_action WHERE checkbox_id = '$checkbox_id'");
while ($row_name = mysqli_fetch_assoc($q_act))
{
echo "<p>".$row_name['name_action']."</p>";
}
}
?></td>
<td><a><?=$search['base']?><a/>
<a> <?if (!empty($search['cost_product']))
{
$q_sale = mysqli_query($link, "SELECT * FROM sale WHERE sale_id ='$sale_id' ");
while ($row_action = mysqli_fetch_assoc($q_sale))
echo "<p>".$row_action['name'].' ('.$row_action['code'].'), '.$row_action['quantity'].' шт по '.$row_action['cost'].' руб, итого '.$row_action['sum'].' руб. '."</p>";
}
?><a/>
</td>
<td><?=$search['cost']?></td>
<td><?=$search['points']?></td>
<td><?=$search['date']?></td>
</tr>
<?}
?>
</table>
</div>
</div>
</div>
</div>
Не могу понять почему из таблицы Sale, в которой есть 2 продажи с разными sale_id и с одинаковыми card_id (ведь карта одного клиента), информация о продажах объединилась в одну строку. Но из таблицы action все выводится хорошо, и каждая процедура выводится отдельно. Подскажите где ошибся.