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, ;