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。这样的评论毫无帮助。它怎么不起作用?