我需要根据表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语句来做这个?
答案 0 :(得分:1)
向B添加一个新列。此列将为“空”,即所有行将具有NULL作为该列中的值。
ALTER TABLE TableB ADD COLUMN account CHAR(1);
使用多表UPDATE更新该列中的值。它是为每个uid多次更新TableB的行,但如果TableA中给定uid的所有行都具有相同的帐户值,那么这应该不是问题。
UPDATE TableB JOIN TableA USING (uid)
SET TableB.account = TableA.account;
我建议删除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