我试图两次连接同一张表而没有成功。我有两张桌子。

表格1


ID
替代者
取而代之


表2


产品编号
产品名称


如何在同一个查询中两次联接table2,所以我可以看到

Replacer ProductName and replacedBy ProductName


我尝试了内部联接,但是只能获得属于“ replacedBy”的产品名称。如何参加两次,这样我才能看到属于“ replacedBy”和“ replacer”的产品名称

选择

table1.Replacer,
表1。
table2。产品名称

来自表1

table1上的内部联接table2.ReplacedBy = Standards.ProjectNr
;

最佳答案

假定Standards.ProjectNr是一个编辑错误,您打算用虚拟的table.column名称替换,那么您可以尝试以下操作:

    SELECT t1.id, r.ProductID as replacer_ID,  r.ProductName as replacer,
        b.ProductID as replacedBy_ID, b.ProductName as replacedByName
        FROM table1 t1
        INNER JOIN table2 r ON t1.replacer = r.ProductID
        INNER JOIN table2 b ON t1.replacedBy = b.ProductID


如果要获取table1中的所有ID,则应将INNER JOIN替换为LEFT JOIN

但同样,样本数据会很好。

关于mysql - 从同一引号的同一列中找到两个值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57809979/

10-16 23:39