Mysql 关于使用唯一索引联接两个表
我有两张这样的桌子Mysql 关于使用唯一索引联接两个表,mysql,Mysql,我有两张这样的桌子 INSERT INTO DataBase.newtable(idX, contentX,idY,contentY) SELECT X.idX, Y.idY, contentX, contentY FROM DataBase.X, DataBase.Y, ; 表“X” 表“Y” 加入后,插入一个表并成为 idNew(pk) idX(UQ) content(char) idY(UQ) content(char
INSERT INTO DataBase.newtable(idX, contentX,idY,contentY)
SELECT X.idX, Y.idY, contentX, contentY
FROM DataBase.X, DataBase.Y, ;
表“X”
表“Y”
加入后,插入一个表并成为
idNew(pk) idX(UQ) content(char) idY(UQ) content(char)
1 10 foo1 11 boo1
2 21 foo2 22 boo2
3 34 foo3 33 boo3
4 45 foo4 40 boo4
我使用的SQL是这样的
INSERT INTO DataBase.newtable(idX, contentX,idY,contentY)
SELECT X.idX, Y.idY, contentX, contentY
FROM DataBase.X, DataBase.Y, ;
但是SQL语句无法插入newtable,因为idX和idY必须是唯一的值。我能做什么?您需要为该插入指定联接字段,否则将得到两个表的笛卡尔乘积(即16行)。如果idx和idy字段上有唯一的索引,此约束将导致insert失败。新表上的索引是什么?如果新表中的每个字段都是单列索引,那么您的示例应该不会有任何问题。该索引是新表中的新索引。如果我使用sql语句,新表将是(X X Y)的结果,sql将显示“Error-1062:Duplicate entry”错误。但是如何在join之后排序不需要的行。这是我真的不知道如何实现的部分。
INSERT INTO DataBase.newtable(idX, contentX,idY,contentY)
SELECT X.idX, Y.idY, contentX, contentY
FROM DataBase.X, DataBase.Y, ;