【发布时间】:2021-09-22 20:48:57
【问题描述】:
我需要从图像中选择行,其中属于图像的标记集至少包含字符串列表中指定的所有标记。
CREATE TABLE images (
image_checksum varchar(56) NOT NULL,
filename varchar(56),
PRIMARY KEY (image_checksum)
);
CREATE TABLE tags (
id int NOT NULL AUTO_INCREMENT,
name varchar(64),
confidence DECIMAL(5,2),
image varchar(56) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (image) REFERENCES images(image_checksum)
);
我有这个查询,它返回所有带有标签的图像,这些标签包含列表中指定的任何对象。该列表将根据来自客户端的内容而变长。我在我的数据库中指定了两个图像。一只狗,一只猫。使用我需要的查询 - 我希望得到零结果,因为这两个图像都不包含狗和猫。
SELECT DISTINCT images.image_checksum, images.filename, tags.name, tags.confidence from images
LEFT OUTER JOIN tags ON (tags.image = images.image_checksum)
WHERE name in ('dog','cat');
感谢任何帮助!
【问题讨论】:
-
IN 子句等于或,所以两者都使用 and
-
我没关注,你能举个例子吗?