我不懂SQL。我读了一些指南,拼凑了这个问题:
SELECT DISTINCT K.barcode
FROM wp_weblib_keywords K, wp_weblib_collection C
WHERE keyword LIKE Teen
AND keyword LIKE 7-12 && K.barcode = C.barcode
ORDER BY C.barcode ASC我正在努力寻找每一本同时有“青少年”和"7-12“关键字的书(我需要这两个关键字都有,而不是只有一个)。下面是我初始化每个表的方式:
CREATE TABLE weblib_keywords
(
keyword VARCHAR(64) NOT NULL,
barcode varchar(16) not null check (barcode <> ''),
KEY (keyword)
) CHARACTER SET utf8;
CREATE TABLE weblib_collection
(
barcode varchar(16) not null unique check (barcode <> ''),
title varchar(128) not null check (title <> ''),
author varchar(64) not null check (author <> ''),
PRIMARY KEY (barcode),
KEY (title),
KEY (author)
) CHARACTER SET utf8;我认为问题是我没有告诉SQL在哪个表中搜索,但我不确定如何编写。谢谢你的帮助!
发布于 2020-07-12 00:48:28
您可以根据您的数据量尝试UNION。
SELECT K.barcode FROM wp_weblib_keywords K
inner join wp_weblib_collection C
on K.barcode = C.barcode
WHERE keyword LIKE '%Teen%'
UNION
SELECT K.barcode FROM wp_weblib_keywords K
inner join wp_weblib_collection C
on K.barcode = C.barcode
WHERE keyword LIKE '%7-12%' 编辑:
如果您只需要这两个,请尝试下面。对于同一行,如果您同时尝试LIKE和AND,则不会给出任何结果。您应该考虑使用不同的别名重新联接同一个表,并分别检查您的约束。
SELECT c.barcode FROM wp_weblib_keywords K1
inner join wp_weblib_collection C
on K1.barcode = C.barcode
inner join wp_weblib_keywords K2
on K2.barcode = C.barcode
WHERE k1.keyword LIKE '%Teen%' and k2.keyword LIKE '%7-12%'
group by c.barcode 发布于 2020-07-12 00:11:40
尝试下面的操作-使用like操作符,您需要通配符'%'
SELECT DISTINCT K.barcode FROM wp_weblib_keywords K inner join wp_weblib_collection C
on K.barcode = C.barcode
WHERE keyword LIKE '%Teen%' OR keyword LIKE '%7-12%'
order by C.barcode 发布于 2020-07-12 00:30:20
如果wp_weblib_keywords_table的语义是在每一行中只包含一个关键字,那么这个查询永远不会返回结果(格式问题除外)。
这是因为查询会查看wp_weblib_keywords表中的每一行,并尝试查找关键字为两个不同值的一行。嗯,表中的一行永远不会有等于两个单独值的列。
试试这个:
SELECT DISTINCT C.barcode
FROM wp_weblib_collection C
INNER JOIN join wp_weblib_keywords K1 on C.barcode = K1.barcode
INNER JOIN wp_weblib_keywords K2 on c.barcode = K2.barcode
WHERE k1.keyword = 'Teen' AND k2.keyword = '7-12'
ORDER BY C.barcode 如果有一条记录的关键字为'Teen‘,另一条记录的关键字为'7-12’,则该查询将返回行
https://stackoverflow.com/questions/62851569
复制相似问题