【发布时间】:2015-05-25 14:53:21
【问题描述】:
我有一个名为 Kits 的表名,其中有 5 列用于 Book ISBN。
- 因此,即使 ISBN 的至少 1 个值与用于存储 ISBN 的表格套件的 5 列(ISBN_BOOK1、ISBN_BOOK2、ISBN_BOOK3、ISBN_BOOK4、ISBN_BOOK5)中的任何一列匹配,我也想选择行。
- 如果存在任何一个 ISBN,则返回计数。
我为此编写了一个 sql 查询,但只有当最后一个值与任何行匹配时,我才会得到行输出。在我的情况下,值为 7589765432 这是我的 sql 查询:
Select *
from kits k
left
join kits_cstm kc
on k.id = kc.id_c
where '8192933563'
and '8192933567'
and '8192933568'
and '8192933564'
and '7589765432' IN (kc.isbn_book_1_c,kc.isbn_book_2_c,kc.isbn_book_3_c,kc.isbn_book_4_c,kc.isbn_book_5_c)
and kc.city_c = 'BAN'
and kc.kit_for_c = 'SCHL'
and k.deleted = 0
ORDER
BY k.kit_id DESC
【问题讨论】:
-
很难理解。但您的结构肯定不正确 - 所有这些 AND 条件都没有正确的结构。
-
从哪里开始......好吧,从规范化开始
-
8192933563 等数字是 ISBN 编号,我想在列中以任何顺序选择甚至任何单个 isbn 值都已存在的记录。也可以匹配所有 5 个值.