gpt4 book ai didi

mysql查询按标签选择

转载 作者:行者123 更新时间:2023-11-29 00:43:23 25 4
gpt4 key购买 nike

我有一个包含 3 个表的数据库,我需要根据标签查询从中获取内容。

表格如下所示:

nv_entries:
id - title - year - etc..

nv_tags:
id - entrieid - tag

nv_images:
id - entrieid - source

假设我想要所有带有标签“rousseau”和“fuzz”的条目。之后图像也应该加入其中 entrieid = entrieid。

这可能可以通过一个查询来完成,但我不知道该怎么做。

$query = "SELECT * from nv_entries WHERE ???

请帮忙

最佳答案

由于条目和标签之间存在一对多关系,因此您必须在标签表上使用数据透视表。简单地说 where tag = 'x"和 tag = 'y"是行不通的,因为引擎是逐行查看的,所以 tag 不能同时拥有这两个值。因此,基本上您进行了调整,为每个条目分配标志,以表明该条目是否已被视为具有您正在寻找的标签值。

SELECT * 
FROM nv_entries entries
JOIN (
SELECT entrieid,
COUNT(CASE WHEN (tag = 'rousseau') THEN 1 ELSE null END) has_rousseau,
COUNT(CASE WHEN (tag = 'fuzz') THEN 1 ELSE null END) has_fuzz
FROM nv_tags
GROUP BY entrieid
HAVING has_rousseau != 0 and has_fuzz != 0
) tags ON (entries.id = tags.entrieid)
JOIN nv_images images ON (tags.entrieid = images.entrieid);

关于mysql查询按标签选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11282337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com