Как вывести информацию сразу с из двух таблиц, в которых пересекаются только ID клиента?

У меня есть две таблицы, одна - покупки клиентов, другая - ремонты клиентов. В них пересекаются только ID клиентов. И я хочу вывести из них информацию в карту каждого клиента. Используя

SELECT * 
FROM clients c 
LEFT JOIN sale s ON s.card_id = c.card_id  
LEFT JOIN action a ON a.card_id = c.card_id 
WHERE c.card_id = '$search'

Я рассчитывал получить таблицу где в одной строке будет покупка клиента в другой продажа или наоборот или только продажи если клиент только покупал и не ремонтировался.

Однако я получаю смешанную таблицу, т.е. в строке сразу информация и о покупке и о продаже. И к примеру у клиента 2 покупке и 1 ремонт, а в таблице 2 покупке и в каждой фигурирует этот ремонт.

Подскажите что нужно исправить в коде, чтобы получить желаемое.

Исходный данные в таблице покупок

id 
card_id
name
phone
date
cost
base

И в каждой строке

200:44:Карина:8917..:10.01.20:1000:наращивание
201:42:Валя:8927...:11.01.20:500: снятие

Исходный данные в таблице ремонта

Полные тексты   
id
sale_id
code
quantity
name
cost
sum
date
card_id
1:1:артикул 556:5 шт:Лак:500:20.10.20.:42
2:2:артикул 345:3 шт:Пудра:1000:21.10.20.:48

В итоговой таблице

Процедура:Комментарий:Стоимость:Кол-во:ID:Дата.
Покупка:Лак:500:5шт:42:20.10.20
Ремонт:Наращивание:1000:1:42:10.01.20

Ответы (2 шт):

Автор решения: Ипатьев

Для того чтобы получить данные из двух не связанных таблиц в базе данных, надо выполнить два запроса.

→ Ссылка
Автор решения: Akina

Схематично:

SELECT *
FROM clients 
LEFT JOIN ( SELECT card_id, 'Продажа' type, sale_date  , sale_amount, sale_price
            FROM sale
          UNION ALL
            SELECT card_id, 'Ремонт'      , action_date, NULL       , action_price
            FROM action ) total USING (card_id)

Конкретный текст запроса зависит от желаемого вида вывода и соответствия выходных полей таблиц.

→ Ссылка