【发布时间】:2019-12-05 04:43:32
【问题描述】:
我是对象关系数据库的新手,我正在尝试开发一个查询,该查询将根据与主题的匹配数返回结果。例如,我的表如下所示:table 我的主题类型由两个属性(id、title)组成。每本书可以有多个主题,因此当用户输入一个主题字符串时,它将返回 isbn、title、count(*)、按匹配数排名的价格(count)。我已经使用连接形成了关系数据库的查询,但我无法为嵌套表重现它。我的关系数据库查询是这样的:SELECT b.ISBN, b.TITLE, COUNT(*) FROM BOOKS b JOIN BOOK_SUBJECT bs ON bs.ISBN = b.ISBN WHERE bs.ID IN (1, 2, 3) GROUP BY b.ISBN, b.TITLE ORDER BY COUNT(*) DESC。
编辑:这次我尝试按主题标题而不是 id 进行搜索。
编辑:解决方案SELECT b.ISBN, b.TITLE, count(*) FROM BOOKS2 b, table(b.subjects) d WHERE d.title like '%math%' or like '%science%' GROUP BY b.ISBN, b.TITLE ORDER BY COUNT(*) DESC
编辑:如何使它不区分大小写?
【问题讨论】:
-
您使用的是哪个数据库?如果不是 Oracle,则从该问题中删除 Oracle 标记。
-
我实际上已经解决了这个问题。我将使用查询编辑帖子。
-
我现在的问题是如何使搜索不区分大小写?例如“数学”与“数学”或“数学”相同。我正在使用甲骨文。
-
不断变化的问题让人很难理解。欢迎来到 SO。
-
现在,问题标题和问题/答案不匹配。也请编辑问题标题。对以后的读者很有帮助。
标签: database oracle nested-table