得到嵌套的相关产品mysql

时间:2017-03-12 09:23:25

标签: mysql stored-procedures

我有两张相关产品的表格。

product
---------------------------------------------
product_id | Name | creation_date
---------------------------------------------
    1          A           2017-03-11 11:30:13
    2          B           2017-03-12 12:30:12
    3          C           2017-03-13 13:30:45
    4          D           2017-03-14 14:30:45
    5          E           2017-03-15 15:30:45

product_related
---------------------------------------------
related_id | product_id | related_product_id
---------------------------------------------
    1            1               2
    2            2               5
    3            3               1
    4            4               3

我需要间接或直接相互获取所有相关产品。

If @ProductID = 1, then I need Product ID's 2,3,4,5 

If @ProductID = 2, then I need Product ID's 1,3,4,5

If @ProductID = 3, then I need Product ID's 1,2,4,5 

If @ProductID = 4, then I need Product ID's 1,2,3,5

If @ProductID = 5, then I need Product ID's 1,2,3,4

如果需要更改product_related表设计以提高执行性能,我很好。

1 个答案:

答案 0 :(得分:0)

您已将此标记为php,因此我怀疑您还有其他问题需要体验:)

您需要的是MySQL中的递归查询。我不是MySQL开发人员,但对于那些看到这篇文章并使用MS SQL的其他投注者来说,这非常简单。在MS SQL中,我们使用递归CTE(公用表表达式)来简化这种深度链接。

请按照本文的指导: How to do the Recursive SELECT query in MySQL?