【发布时间】:2015-11-11 03:16:36
【问题描述】:
我在下面有三个表。主键是 PK 列。我想在每个表上获取唯一的 PK 并根据 PK 填充 NO 列(请参见下面的输出)。我怎样才能使用 MySQL 做到这一点?抱歉我的问题,我刚接触 MySQL,我只知道如何选择那些独特的 PK。
select U_IMSI from
(select IMSI from table_A
UNION
select IMSI from table_B
UNION
select IMSI from table_C) as UNIQUE_IMSI
table_A
PK NO
12345 22222
78912 33333
56892 44444
table_B
PK NO
12345 88888
78912 99999
56892 11111
table_C
PK NO
12345 NET
78782 SMART
12345 MMS
12345 SMART
56892 MMS
78912 GT
table_C 中的注意事项:如果 PK 有 1 到 3 个值,则获取 NO 值并填充为 C1 C2 C3。
输出
PK A C1 C2 C3 B
12345 22222 NET MMS SMART 88888
78912 33333 GT 99999
56892 44444 MMS 11111
78782 SMART
【问题讨论】:
-
表 c 中每个 PK 的最大行数是多少?对于每个 PK,表 a 和/或表 b 中是否总是有一行?
-
最大值为 3。是的,每个 PK 在表 a 和 b 中总是有一行。