У меня есть 2 таблицы:
review_shared:
review_shared_id cat_id user_id contact_id
19 5 10276 10275
20 5 10276 10277
21 5 10276 10273
15 6 10279 10277
Категория:
cat_id user_id cat_name
3 10278 A
4 10279 B
5 10276 C
6 10279 D
Я выполняю свой запрос с помощью:
$sql = "
SELECT *
FROM review_shared
JOIN category
ON review_shared.cat_id = category.cat_id
WHERE review_shared.contact_id = ?
";
С review_shared.contact_id
как 10277
, приведенное выше даст мне:
review_shared. category.
review_shared_id cat_id user_id contact_id cat_id user_id cat_name
20 5 10276 10277 5 10276 C
15 6 10279 10277 6 10279 D
Теперь у меня есть третья таблица, contacts
:
contact_auto_inc user_id contact_id
1 10278 10273
2 10277 10276
3 10261 10285
, если contacts
в таблице есть строка с user_id
в качестве 10277
и contact_id
в качестве значения user_id
в таблице review_shared
, тогда я хочу вернуть эти значения.Таким образом, в приведенном выше случае результат будет (с review_shared.contact_id = ?
как 10277
):
review_shared. category.
review_shared_id cat_id user_id contact_id cat_id user_id cat_name contact_auto_inc user_id contact_id
20 5 10276 10277 5 10276 C 2 10277 10276
Это утверждение, которое я использую, но, похоже, оно не работает:
$sql = "
SELECT *
FROM review_shared
JOIN category
ON review_shared.cat_id = category.cat_id
JOIN contacts
ON review_shared.contact_id = contacts.user_id
AND contacts.contact_id = review_shared.user_id
WHERE review_shared.contact_id = ?
";