我有 3 张 table :
miners
包含 id
和 name
列;
users
包含 id
、name
和 password
列;
user_miners
包含列 user_id
和 miner_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/