我有这三个表:遍历记录和他们的父母找到匹配的记录
items
id parent_id
--------------
590 589
589 588
588 587
587 586
user_items
item_id project_id user_id
------------------------------
588 50 2
587 49 2
users
id
--
2
我需要找到其ITEM_ID要么匹配的项目的ID或项目的PARENT_ID的user_item。它也需要匹配user_id。
这是它应该工作的方式:
1)与ITEM_ID 590和USER_ID 2开始,我查询user_items表。有零个记录。
2)我查询ID为590的项目,并找到项目的parent_id,它是589.然后我接受parent_id以及user_id并再次查询user_items表。有零个记录。
3)然后找到条目记录,ID为589.我使用该记录的parent_id(588)并再次查询user_items表。有一个匹配,所以它打破了循环,并返回匹配的user_item。
请注意,我必须使用此架构,并且它需要返回匹配的第一个user_item。可以有多达5个级别的项目和他们的父母。
起初,我以为我可以只使用项目590及其所有的父母,但会选择太多的user_items。它需要返回匹配的最低级别的项目。我也认为我可以使用循环,但我不熟悉这是如何工作的,我想有一个更简单的解决方案。
想法?