我有 2 张 table :
评论共享:
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 = ?
";
最佳答案
您在联系人加入时遇到错误:
$sql = "
SELECT *
FROM review_shared
JOIN category
ON review_shared.cat_id = category.cat_id
JOIN contacts
ON review_shared.contact_id = contacts.contact_id
WHERE review_shared.contact_id = ?
";
关于php - 如何连接这 3 个表并使我的 Select 查询起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55185157/