У меня две разные роли на моем сайте.
1) Поставщик 2) Пара
Для этого я создал автономную систему обмена сообщениями.Я хочу, чтобы, когда поставщик зашел в его почтовый ящик, он мог видеть только те сообщения, которые ему принадлежат.
Вот мои структуры таблиц с примерами данных:
Это мои 'Потоки'table:
id | subject | created_at | updated_at
----------------------------------------------------------------
42 | Hello supplier | 2019-01-14 13:45:45 | 2019-01-14 13:45:45
43 | Interested in | 2019-01-14 13:45:45 | 2019-01-14 13:45:45
44 | Hi there | 2019-01-14 13:45:45 | 2019-01-14 13:45:45
45 | Hello | 2019-01-14 13:45:45 | 2019-01-14 13:45:45
46 | Hi | 2019-01-14 13:45:45 | 2019-01-14 13:45:45
Это моя таблица' участников ':
id | thread_id | user_id | last_read | created_at
---------------------------------------------------------------------
54 | 42 | 63 | 2019-01-14 13:45:45 | 2019-01-14 13:45:45
55 | 42 | 43 | 2019-01-14 13:45:45 | 2019-01-14 13:45:45
56 | 46 | 108 | 2019-01-14 13:45:45 | 2019-01-14 13:45:45
57 | 46 | 11 | 2019-01-14 13:45:45 | 2019-01-14 13:45:45
58 | 44 | 7 | 2019-01-14 13:45:45 | 2019-01-14 13:45:45
59 | 44 | 60 | 2019-01-14 13:45:45 | 2019-01-14 13:45:45
Это моя таблица' user ':
id | name | role | created_at
------------------------------------------------
7 | ali | supplier | 2019-01-14 13:45:45 |
63 | anas | couple | 2019-01-14 13:45:45 |
43 | zain | supplier | 2019-01-14 13:45:45 |
11 | alex | supplier | 2019-01-14 13:45:45 |
60 | ammy | couple | 2019-01-14 13:45:45 |
108 | zia | couple | 2019-01-14 13:45:45 |
Это моя'таблица поставщиков:
id |user_id | avatar | business_name | Created_at
--------------------------------------------------------------
5 | 7 | a.jpeg | Abc supplier | 2019-01-14 13:45:45
7 | 11 | b.jpeg | Bcd supplier | 2019-01-14 13:45:45
15 | 43 | c.jpeg | Def supplier | 2019-01-14 13:45:45
Это моя таблица «пар»:
id |user_id | avatar | name | Created_at
------------------------------------------------------
7 | 63 | ab.jpeg | Anas | 2019-01-14 13:45:45
21 | 108 | cd.jpeg | Zia | 2019-01-14 13:45:45
4 | 60 | ef.jpeg | Zia | 2019-01-14 13:45:45
Это мой запрос
SELECT t.*, s.user_id as supplier_id, c.name, c.avatar,
c.user_id as couple_id, u.role as currentUserRole
FROM threads t
INNER JOIN participants p ON p.thread_id = t.id
INNER JOIN users u
INNER JOIN couple c ON c.user_id = p.user_id
INNER JOIN supplier s
WHERE s.user_id = 43 AND u.id = 43
, и текущий результат равен
id | Subject | supplier_id | name | avatar | couple_id | current user Role
------------------------------------------------------------------------------------
42 | Hello supplier| 43 | zain | ab.jpeg | 63 | supplier
44 | Hi there | 43 | zain | cd.jpeg | 108 | supplier
46 | Hi there | 43 | zain | cd.jpeg | 108 | supplier
я хочу показывать только те сообщения, которые принадлежат конкретному получателю, но сейчас он показывает все сообщения всем пользователям, будь то пара или поставщик.