php - 如何连接这 3 个表并使我的 Select 查询起作用?

标签 php mysql inner-join

我有 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_id10277contact_iduser_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/

相关文章:

php - 当 WooCommerce 3 中提供免费送货服务时,隐藏具体的统一费率

javascript - 从ajax调用中检索php变量但不起作用

php - OOP PDO 查询空

MySQL 外键错误 1452,当键似乎正常时

hadoop - 在 Hadoop Map/Reduce 中为多个映射器配置 Map Side join

mySQL,将结果值设置为同一查询中的另一个值

php - 我这里需要依赖注入(inject)容器吗

php - 保持代码、数据库结构和数据库数据在修订之间同步

PHP 脚本即使登录不正确也能登录

mysql查询连接/内部连接