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

时间:2013-10-24 19:43:54

标签: 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     name    
1111    Fred    
1112    Joe     
1113    Ralph   

我需要以某种方式查询表A并找到与每个唯一名称(或uid)关联的帐户。然后我需要根据该信息将“帐户”列添加到表B.我会用什么样的sql语句来做这个?

3 个答案:

答案 0 :(得分:1)

  1. 向B添加一个新列。此列将为“空”,即所有行将具有NULL作为该列中的值。

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

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

    ALTER TABLE TableA DROP COLUMN account;
    

答案 1 :(得分:0)

   SELECT DISTINCT A.uid,A.account AS Account_Name
    FROM TableA A,TableB B
    WHERE A.uid = B.uid;

答案 2 :(得分:0)

select name, distinct(account) from A group by name