php - 如何左连接两个表并显示信息?

标签 php mysql pdo

我有 3 张 table :
miners 包含 idname 列;
users 包含 idnamepassword 列;
user_miners 包含列 user_idminer_id(其他表的外键)

我需要打印出用户及其矿工姓名 例如,我有 id 为 1 的用户,他有名为 f、s、t 的矿工 所以我需要打印出来:

1 f
1 s
1 t

如何使用左连接来做到这一点?

我已经尝试了所有可能的左连接,但我似乎无法让它工作,也许只是因为我不理解左连接的概念

    ('SELECT user_mineres.user_id, users.id, miners.name
    FROM user_mineres
    LEFT JOIN users
    ON user_mineres.user_id=users.id
    LEFT JOIN miners
    ON users.id=miners.name
    GROUP BY user_mineres.user_id ');

    foreach ($stmt as $row) 
    {
    echo $row['user_id'] . $row['name'] . "<br>";
    }

我收到列名不明确或其他语法错误的错误

最佳答案

您不需要group by,只需要正确的连接和正确的ON子句:

SELECT u.id, m.name
FROM users u
LEFT JOIN user_miners um ON um.user_id = u.id
LEFT JOIN miners m ON m.id = um.miner_id

关于php - 如何左连接两个表并显示信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56692646/

相关文章:

php - 使用php计算关联数组中元素的深度

php - 一些 Laravel 4 PSR-0 问题?

php - 我应该如何在 MySQL 数据库中存储 ftp 登录凭据?

php - 在 mysql 数据库中搜索纬度/经度或按项目名称

php - 使用在某些字段中具有多个值的 MySQL 查询创建一个表

PHP 7 与 PHP 5——函数的变化

PHP 移动 mySQL 树节点

php - Docker 使用 PHP 连接 MySQL 的问题

php - 使用 PHP/PDO 检查数据库表是否存在

PHP PDO 获取 MySQL 日期时间