产品相同型号到相关产品表

问题描述:

我越来越疯狂创建一个从一个选择相同的模型表插入。 我认为我应该创建一个临时表来阐述所有模型,但是如何? 下面的表格我有:产品相同型号到相关产品表

表产品

+------------+----------+ 
| id_product | id_model | 
+------------+----------+ 
|   1 | D  | 
|   2 | D  | 
|   3 | A  | 
|   4 | C  | 
|   5 | D  | 
+------------+----------+ 

这里表我想创建,但我的最好的问题是,在相关的记录应该重复像 ID1 - > ID2id2-> ID1

表再

+------------+-----------------+ 
| id_product | related_product | 
+------------+-----------------+ 
|   1 |    2 | 
|   1 |    5 | 
|   2 |    1 | 
|   2 |    5 | 
|   5 |    1 | 
|   5 |    2 | 
+------------+-----------------+ 

嗯。我认为你只是想自我加入

select p1.id_product, p2.id_product as related_product 
from product p1 join 
    product p2 
    on p1.id_model = p2.id_model and 
     p1.id_product <> p2.id_product; 
+0

一个微小的变化。我跑你的查询和输出翻转。在第一行交换p1.id_product和p2.id_product可以解决这个问题。除此之外,很好的答案。 – Ethilium

+1

这怎么可能? Gordon给出的查询关于p1和p2是对称的!也许你误解了一些东西? –

+1

投了!但我仍然不明白它是如何工作的。我还添加了(只是为了创建表)'通过p1.id_product,p2.id_product ASC'命令,它就像一个魅力。你能给我一点解释吗?至少两排。提前致谢。 – Vixed