Вывод значения из двух строк в одной SQL

У меня есть две таблицы

введите сюда описание изображения

и (скрин не всей таблицы)

введите сюда описание изображения

и мне нужно вывести в одном запросе и имя отдающего и имя получающего в соседних столбцах(по их id)

вот пока что мой код

SELECT id_операции, id_отдающего, CONCAT(фамилия," ",имя) AS имя_отдающего
FROM barters.barter_operations, barters.clients
where id_отдающего = id_клиента;

и результат

введите сюда описание изображения

и вот я второй день думаю, как это всё вывести, я пробовал и сделать один запрос и к нему потом присоединить другой, и сразу всё в одном запросить, короче, ничего не сработало


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

Автор решения: Namerek
create table clients
(
    id         integer primary key auto_increment,
    surname    varchar(32),
    first_name varchar(32),
    patronymic varchar(32),
    phone      varchar(64)
);
create table deals
(
    id        integer primary key auto_increment,
    seller_id integer references clients on update cascade on delete restrict,
    buyer_id  integer references clients on update cascade on delete restrict
);
insert into clients (surname, first_name, patronymic, phone)
values ('Rahman', 'Sander', null, '336 851-2654'),
       ('Rajiv', 'Martin', null, '846 326-6732'),
       ('Ivanov', 'Oleg', 'Vitalievich', '7 916 312 55 02');
insert into deals (seller_id, buyer_id)
VALUES (3, 1),
       (1, 3),
       (2, 3);
select d.id                                                     as deal_id,
       concat_ws(' ', c2.first_name, c2.patronymic, c2.surname) as seller,
       concat_ws(' ', c.first_name, c.patronymic, c.surname)    as buyer
from deals d
         join clients c on d.buyer_id = c.id
         join clients c2 on c2.id = d.seller_id
deal_id seller buyer
1 Oleg Vitalievich Ivanov Sander Rahman
2 Sander Rahman Oleg Vitalievich Ivanov
3 Martin Rajiv Oleg Vitalievich Ivanov
→ Ссылка