簡體   English   中英

選擇給定parent_id的回復文本

[英]Select the text of a reply given a parent_id

我有此表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 

我目前正在嘗試根據review_id等於parent_id位置選擇text

在上面顯示的示例中,三行的parent_idnull ,因為每個review_id不包含“ reply”。 一個“答復”如下所示:

     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

我的問題是,在給定parent_id情況下,如何選擇回復text (孩子)? 我試過了:

SELECT text FROM oc_review ON (review_id = parent_id) WHERE review_id = 123;

上面的代碼片段僅返回一個空集。

這是您想要的嗎?

SELECT r.text
FROM oc_review r
WHERE parent_id = 123;

在這種特殊情況下,您應該使用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;

說明:

  • SELECT oc.text-我們將從聯接表中獲取text
  • FROM oc_review o-我們從表oc_review別名為o
  • LEFT JOIN oc_review oc-我們進行左自連接並將自連接的別名設置為oc
  • ON(o.review_id = oc.parent_id)-如果主表review_id等於聯接表的parent_id ,則我們聯接
  • WHERE o.review_id = 123-主表的review_id為123

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM