Mysql SQL将列的值与其他列的所有值匹配

Mysql SQL将列的值与其他列的所有值匹配,mysql,sql,Mysql,Sql,我只有一张桌子:产品 我想: 选择所有手机,其中一个代码与其中一个匹配 Phone1的代码 换言之: 如果Phone1[Code 1]=Phone2[Code 1]或Phone1[Code 1]=Phone2[Code 2]或Phone1[Code 1]=Phone2[Code 3]或Phone1[Code 1]=Phone3[Code 1]。。。等 将每个Phone1列的值与每个PhoneX列的值进行比较。3x3条件=总共9个 所以它应该返回:Phone2和Phone3它应该跳过empty=e

我只有一张桌子:产品

我想:

选择所有手机,其中一个代码与其中一个匹配 Phone1的代码

换言之:

如果Phone1[Code 1]=Phone2[Code 1]或Phone1[Code 1]=Phone2[Code 2]或Phone1[Code 1]=Phone2[Code 3]或Phone1[Code 1]=Phone3[Code 1]。。。等

将每个Phone1列的值与每个PhoneX列的值进行比较。3x3条件=总共9个

所以它应该返回:Phone2和Phone3它应该跳过empty=empty的匹配

我的尝试自我加入-我是新手,无法正确进行此操作:

SELECT `a.Product Name`
FROM products a, products b
WHERE 
(`a.Code 1` = `b.Code 1`) OR 
(`a.Code 1` = `b.Code 2`) OR   
(`a.Code   1` = `b.Code 3`) OR 
(`a.Code 2` = `b.Code 1`) OR 
(`a.Code 2` = `b.Code 2`) OR 
(`a.Code 2` = `b.Code 3`) OR
(`a.Code 3` = `b.Code 1`) OR
(`a.Code 3` = `b.Code 2`) OR
(`a.Code 3` = `b.Code 3`)
AND `a.Product Name` = "Phone1";
提前谢谢你

应该是这个查询

select `a.Product Name` from products as a
left join products as b on  a.`a.Code 1` = `b.Code 2`
left join prodcuts as c on  a.`a.Code 1` = `c.Code 3`
where `a.Product Name` = "Phone1";

也许是这样的

SELECT  p.*
FROM    Products p
        JOIN Products p1 ON p1.`Product Name` = 'Phone1'
                            AND (p1.`Code 1` IN (p.`Code 1`,p.`Code 2`,p.`Code 3`)
                                 OR p1.`Code 2` IN (p.`Code 1`,p.`Code 2`,p.`Code 3`)
                                 OR p1.`Code 3` IN (p.`Code 1`,p.`Code 2`,p.`Code 3`))
WHERE   p.`Product Name` <> 'Phone1'

除了有点不合时宜的SQL Server语法之外,这看起来还可以工作。谢谢!在这句话中,如果我愿意,最好在什么地方加上“不在”这样的词:选择所有手机,其中一个代码与Phone1的代码匹配,但如果代码=DD,则不加选择
SELECT  p.*
FROM    Products p
        JOIN Products p1 ON p1.`Product Name` = 'Phone1'
                            AND (p1.`Code 1` IN (p.`Code 1`,p.`Code 2`,p.`Code 3`)
                                 OR p1.`Code 2` IN (p.`Code 1`,p.`Code 2`,p.`Code 3`)
                                 OR p1.`Code 3` IN (p.`Code 1`,p.`Code 2`,p.`Code 3`))
WHERE   p.`Product Name` <> 'Phone1'