从具有共享值的记录创建新表

时间:2016-04-08 18:00:22

标签: mysql

我有一张表,其中两个或多个记录共享一个公共字段:

Bob | NY
Mary| NY
Dan | NY
Ed  | CA
Ben | CA    

我想创建一个新表,其中包含与Field1和Field2共享公共值的记录:

Bob  | Mark
Bob  | Dan
Mary | Dan
Ed   | Ben

我不知道如何创建一个Create Table as Select来实现这一点。

2 个答案:

答案 0 :(得分:0)

Select a.n na, b.n nb from t  a join t b on b.m = a.m and b.n > a.n

答案 1 :(得分:0)

像这样选择

SELECT t1.num as num1,t2.num as num2
FROM tab1 t1, tab1 t2
WHERE t1.code = t2.code
AND t1.num < t2.num

sqlfiddle

问题已更新,但同样的查询仍然有效。

SELECT t1.name as name1,t2.name as name2
FROM tab1 t1, tab1 t2
WHERE t1.code = t2.code
AND t1.name < t2.name

sqlfiddle