У меня есть три таблицы:
protocol
:
+----+---------+------+----------+
| id | subject | date | location |
+----+---------+------+----------+
| 1 | sub1 | c1 | s1 |
| 2 | sub2 | c1 | s2 |
| 3 | sub3 | c3 | s2 |
| 4 | sub4 | c2 | s3 |
+----+---------+------+----------+
protocol_item
:
+----+----------+-------+
| id | protocol | body |
+----+----------+-------+
| 1 | 1 | Hello |
| 2 | 2 | world |
| 3 | 2 | ok |
+----+----------+-------+
protocol_participant
:
+----------+-------------+
| protocol | participant |
+----------+-------------+
| 1 | Right 1 |
| 2 | part 72 |
| 2 | Hello 3 |
+----------+-------------+
Я хочу выбрать элемент из таблицы protocol_item
, где protocol_item.protocol
= 2:
+----+---------+----------+-------+-------------+
| id | subject | location | body | participant |
+----+---------+----------+-------+-------------+
| 2 | sub2 | s2 | world | part 72 |
| 2 | sub2 | s2 | ok | Hello 3 "
+----+---------+----------+-------+-------------+
Я попробовал ниже способ:
select item.id
, item.protocol
, item.body
, p.subject
, pp.participant
from protocol_item item
left join protocol p
on item.protocol = p.id
left join protocol_participant pp
on pp.protocol = item.protocol
where item.protocol = 2;
Но он показывает 4 значения.Где я делаю не так?Заранее спасибо.