mysql查询中的问题
我有两张桌子:mysql查询中的问题,mysql,sql,database,Mysql,Sql,Database,我有两张桌子: table 1:userdetails with fields:uid,mobile,name table 2:accountdetails with fields:uid,savings,balance 其中uid是两个表中的公用键和主键。 现在我正在尝试从uid=1的两个表中获取移动储蓄值。我在下面尝试了,但没有成功 select mobile,savings from userdetails,accountdetails where userdetails.u
table 1:userdetails with fields:uid,mobile,name
table 2:accountdetails with fields:uid,savings,balance
其中uid是两个表中的公用键和主键。
现在我正在尝试从uid=1的两个表中获取移动储蓄值。我在下面尝试了,但没有成功
select mobile,savings
from userdetails,accountdetails
where userdetails.uid='1'AND
userdetails.uid = accountdetails.uid
有人能帮你使用join吗
选择移动、储蓄
从userdetails在userdetails.uid=accountdetails.uid上加入accountdetails
其中userdetails.uid='1'更现代的版本,使用连接语法:
SELECT
a.`mobile`,
b.`savings`
FROM `userdetails` a
JOIN `accountdetails` b
ON a.`uid` = b.`uid`
WHERE a.`uid` = 1
查询可能如下所示:
select ud.mobile, ad.savings
from userdetails ud left join
accountdetails ad
on ud.uid = ad.uid
where ud.uid = 1;
注:
- 使用正确、明确的
语法JOIN
- 使用有意义的表别名并限定所有列的名称
保留所有行,即使第二个表中没有匹配项。那可能是你的问题left join
- 我假设
实际上是一个数字。不要把数字放在数字常量周围uid
ini\u集('display\u errors',1)代码>您可以试试这个
SELECT `ud`.`mobile`, `ad`.`savings`
FROM `userdetails` `ud`
INNER JOIN `accountdetails` `ad` ON `ud`.`uid` = `ad`.`uid`
WHERE `us`.`uid` = 1
你说的“没用”是什么意思?结果出了什么问题?另外,您可能希望使用更现代的联接语法,而不是逗号分隔的表。逗号分隔的表在条件有效的情况下,如果表中有uid上的匹配数据,是否签入两个表中的uid 1可用?@user7350714。这样的评论毫无帮助。它怎么不起作用?