我有3张桌子:
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>";
}
我收到列名不明确的错误或其他语法错误
答案 0 :(得分:1)
您不需要# A tibble: 6 x 2
`Example numbers` concatNum
<chr> <chr>
1 985.12002779568002 '985.12002779568
2 985.12002826159505 '985.120028261595
3 985.12002780627301 '985.120027806273
4 985.12002780627301 '985.120027806273
5 985.12002780724401 '985.120027807244
6 985.12002780291402 '985.120027802914
,只需要适当的联接和适当的ON子句即可。
group by