如果我在这里完全失败了,请告诉我,我真的在尝试。我想要做的是写一个更新查询,根据我在chapter_tbl上使用相同story_id的已批准章节的数量来更改story_tbl中的值。
所以基本上,如果一个故事没有经过批准的章节,那么在story_tbl中它就不应该被批准了。
我尝试了一些事情,但到目前为止,我可以说我正在做这种方式比需要更复杂。非常感谢一些帮助!
答案 0 :(得分: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();
答案 1 :(得分: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)