到目前为止,我已经搜索了一下,但还没找到我到底要找的东西。基本上我有一个MySQL数据库,有几个表(keywords
,company
和link
表)。我希望能够提供一系列关键字并找到相关公司。当我运行没有WHERE IN
子句的第二个查询时,它可以工作。当我提供阵列时,它没有。
select keywords.idkeywords into @keyId
from keywords where
keywords.keyword IN ('Entertainment', 'Public');
select distinct company.company_name
from keywords, keyword_to_company, company
where keyword_to_company.keywordId = @keyId
and keyword_to_company.compId = company.idcompany;
答案 0 :(得分:2)
您的查询没有意义。首先,您尝试在@keyid
中添加多个值,但您无法做到这一点。而且,MySQL没有表变量的概念。您可以使用临时表。
然后第二个查询更糟。这个查询对你有用吗?
select distinct c.company_name
from keywords k natural join
keyword_to_company k2c natural join
company c
where k.keyword IN ('Entertainment', 'Public') and
k2c.compId = company.idcompany;
我只使用natural join
,因为您没有指定join
个密钥。通常,您应始终使用on
或using
指定要加入的列。
答案 1 :(得分:0)
...谢谢 您的查询无效..
从关键字中选择keywords.idkeywords到@keyId keywords.keyword ='娱乐' 和 keywords.keyword ='公开';
从关键字keyword_to_company,company中选择不同的company.company_name
keyword_to_company.keywordId = @keyId
和 keyword_to_company.compId = company.idcompany;