mysql数据库-要使用的语句?

mysql数据库-要使用的语句?,mysql,sql,database,Mysql,Sql,Database,我需要根据表a的内容向表B中添加一列。我以前从未使用过sql,我正在寻求有关如何实现这一点的建议: Table A: uid name account 1111 Fred A 1111 Fred A 1111 Fred A 1112 Joe B 1112 Joe B 1112 Joe B 1112 Joe B 1113 Ralph A Table B: uid nam

我需要根据表a的内容向表B中添加一列。我以前从未使用过sql,我正在寻求有关如何实现这一点的建议:

Table A:

uid     name    account
1111    Fred    A
1111    Fred    A
1111    Fred    A
1112    Joe     B
1112    Joe     B
1112    Joe     B
1112    Joe     B
1113    Ralph   A


Table B:
uid     name    
1111    Fred    
1112    Joe     
1113    Ralph   
我需要以某种方式查询表A并找到与每个唯一名称(或uid)关联的帐户。然后我需要根据这些信息将“account”列添加到表B中。我将使用什么样的sql语句来执行此操作

   SELECT DISTINCT A.uid,A.account AS Account_Name
    FROM TableA A,TableB B
    WHERE A.uid = B.uid;
  • 向B添加一个新列。此列将为“空”,即所有行中该列的值均为NULL

    ALTER TABLE TableB ADD COLUMN account CHAR(1);
    
  • 使用多表更新更新该列中的值。这有点像是为每个uid多次更新TableB中的行,但是如果TableA中给定uid的所有行的account值都相同,那么这应该不是问题

    UPDATE TableB JOIN TableA USING (uid)
    SET TableB.account = TableA.account;
    
  • 我建议删除表A中多余的列。将信息存储在两个地方不可避免地会导致差异

    ALTER TABLE TableA DROP COLUMN account;
    
  • 向B添加一个新列。此列将为“空”,即所有行中该列的值均为NULL

    ALTER TABLE TableB ADD COLUMN account CHAR(1);
    
  • 使用多表更新更新该列中的值。这有点像是为每个uid多次更新TableB中的行,但是如果TableA中给定uid的所有行的account值都相同,那么这应该不是问题

    UPDATE TableB JOIN TableA USING (uid)
    SET TableB.account = TableA.account;
    
  • 我建议删除表A中多余的列。将信息存储在两个地方不可避免地会导致差异

    ALTER TABLE TableA DROP COLUMN account;
    

  • 这似乎是个坏主意,因为它会在两个表中复制数据。复制数据几乎总是一个糟糕的设计。这似乎是个坏主意,因为它会在两个表中复制数据。重复数据几乎总是一个糟糕的设计。这是一个语法错误。不能将DISTINCT当作函数使用。这是一个语法错误。你不能把DISTINCT当作一个函数来使用。这似乎就是我要找的,谢谢。account列实际上将包含现实生活中的varchar,现在我正试图找出如何确定varchar的最大大小。显然,我希望它与表A的varchar相同。有什么好方法可以获得这些信息吗?
    从表a中选择MAX(长度(帐户))
    这似乎就是我想要的,谢谢。account列实际上将包含现实生活中的varchar,现在我正试图找出如何确定varchar的最大大小。显然,我希望它与表A的varchar相同。是否有一种获取此信息的好方法?
    从表a中选择MAX(长度(帐户))