1

如果我在这里完全无法理解,请告诉我,我正在尝试我真的是。我想做的是编写一个更新查询,以根据我的 chapter_tbl 上具有相同 story_id 的已批准章节的计数来更改我的 story_tbl 中的值。

所以基本上,如果一个故事没有被批准的章节,那么在 story_tbl 中它不应该被批准。

我已经尝试了一些事情,但到目前为止,我可以说我让这种方式比需要的更复杂。非常感谢一些帮助!

4

2 回答 2

3

此查询会将所有未批准章节的故事设置为未批准:

$this->db->query("UPDATE story_tbl SET approved = 'n' WHERE story_id NOT IN (SELECT DISTINCT story_id FROM chapter_tbl WHERE approved = 'y')");

这两个查询将取消批准所有故事,然后批准至少一个已批准章节的所有故事:(基本上是一种更慢、更冗长的方式来做同样的事情,但也有利于批准章节已批准的故事)

$this->db->trans_start();
$this->db->query("UPDATE story_tbl SET approved = 'n'");
$this->db->query("UPDATE story_tbl SET approved = 'y' WHERE story_id IN (SELECT DISTINCT story_id FROM chapter_tbl WHERE approved = 'y')");
$this->db->trans_complete();
于 2013-06-16T01:17:32.460 回答
1
UPDATE story_tbl AS story SET story.approved = 
    (SELECT COUNT(*)>0 FROM chapter_tbl AS chapter 
    WHERE story.id = chapter.story_id AND chapter.approved=1
    GROUP BY chapter.story_id)
于 2013-06-16T01:28:17.170 回答