当我试图从列数据匹配的两个不同表(第一个表的b/w列和第二个表的列)中提取数据时,我无法检索查询结果
我使用了以下两种方法:
SELECT a.*, FROM `table1` a, `table2` b
WHERE a.`synonyms` in (b.`synonyms`);
或
SELECT a.*, FROM `table1` a, `table2` b
WHERE a.`synonyms`=b.`synonyms`;
和
SELECT * FROM `table1` where `synonyms` in (SELECT `synonyms`from `table2`WHERE 1);
首次查询显示错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM `table1` a, `table2` b WHERE' at line 1
第二个查询运行了很长时间,最后除了以下内容外什么都不显示:显示您的查询。
我在这里犯了什么错误?
PS:table1和table都有同义词列(同义词的值在varchar中)。表1中有大约30万个同义词(例如:基因名称)。表2有大约5000个同义词,这些同义词也存在于表1中。我想从表1中提取这5000个,其中包含额外的信息。
SELECT * FROM `table1` where `synonyms` in ('synonym1','synonym2','synonym3','synonym4');
将SELECT a.*, FROM
更改为SELECT a.* FROM
更改
SELECT a.*, FROM
至
SELECT a.* FROM
再加上像一样在查询中使用join
SELECT a.* FROM `table1` a join `table2` b on (a.synonyms=b.synonyms);
在第二个查询中,您应该定义WHERE…='什么"。
正确的语法是WHERE column_name运算符值;
在第一个查询中,您应该已经删除类似逗号的pointed。