指定联合条件和多次排除WHERE的列

问题描述 投票:0回答:1

好吧,我正在使用MYSQL,我无法多次指定特定的列。我知道以下代码是错误的,但它是为了更好地理解我想要做的事情。

注意:id_follow_book = id book

我需要在同一个查询中指定,从id_follow_book中选择一些具体的id和一些特定的章节。使用IN对我没有帮助,因为我会选择id来很好地跟随书籍,但是我不会为每个后续选择正确的章节。存在用户没有关注书籍或id_follow_book的可能性,甚至可能没有。我正在尝试返回用户所遵循的内容。

SELECT id_follow_book, num_chapt
FROM Follow, Chapters
WHERE id_user = 1 AND
id_follow_book = id_chapter_book AND
(id_follow_book = 15 AND num_chapt = (10+1)) AND/OR
(id_follow_book = 25 AND num_chapt = (5+1)) AND/OR
(id_follow_book = 30 AND num_chapt = (23+1))

总和数是变量。我也尝试了CASE WHEN,但我没有实现它。谢谢,抱歉我的英语。

Follow                                      Chapters

id_follow_book   id_user                 id_chapter_book   num_chapt
    30                1                       30              6
    25                1                       30              5
    13                1                       30              4
    21                1                       25             24
                                              25             23

预期结果:

id_follow_book    num_chapt  (this is last viewed chapt of user, this solutioned) 
    30                  6
    25                 24
mysql sql where
1个回答
1
投票

尝试使用IN运算符:

SELECT id_follow_book, num_chapt
FROM Follow inner join Chapters on 
id_follow_book = id_chapter_book 
WHERE id_user = 1 AND 
id_follow_book in( 15,25,30) AND num_chapt in(11,6,24)
© www.soinside.com 2019 - 2024. All rights reserved.