1

我需要根据表 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 语句来执行此操作?

4

3 回答 3

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;
    
于 2013-10-24T20:07:11.920 回答
0
   SELECT DISTINCT A.uid,A.account AS Account_Name
    FROM TableA A,TableB B
    WHERE A.uid = B.uid;
于 2013-10-24T19:46:53.263 回答
0
select name, distinct(account) from A group by name
于 2013-10-24T19:47:26.440 回答