我有这张表oc_review
:
review_id product_id customer_id author text rating status date_added date_modified parent_id
3 0 3 12345 123456123123123123123123123123 5 0 2014-11-12 14:03:04 0000-00-00 00:00:00 NULL
4 0 3 Jacky awefawefawefawefawefawefawefawefawefawef 5 0 2014-11-12 14:19:24 0000-00-00 00:00:00 NULL
5 0 3 Jacky 2134123412341234123412412341234124134 1 0 2014-11-12 14:20:34 0000-00-00 00:00:00 NULL
我目前正在尝试根据text
等于review_id
的位置选择parent_id
。
在上面显示的示例中,parent_id
对于这三行是null
,因为每个review_id
都不包含"回复"。 A"回复"看起来像这样:
1124 1635 0 Admin I am really sorry you had a bad exper... 1 0 2014-li-13 16:01:28 0000-00-00 00:00:00 123
这意味着,review_id
124
是"回复"到parent_id
123
。或者更简单,review_id
123
有一个review_id
124
的孩子。
我的问题是,如何在给定text
的情况下选择回复的parent_id
(孩子)?我试过了:
SELECT text FROM oc_review ON (review_id = parent_id) WHERE review_id = 123;
上面的代码段只返回一个空集。
答案 0 :(得分:2)
这样做你想要的吗?
SELECT r.text
FROM oc_review r
WHERE parent_id = 123;
答案 1 :(得分:1)
在这种特殊情况下你应该使用join:
SELECT oc.text
FROM oc_review o
LEFT JOIN oc_review oc
ON (o.review_id = oc.parent_id)
WHERE o.review_id = 123;
说明:
text
oc_review
获取别名o
oc
review_id
等于联接表的parent_id
,我们加入review_id
为123