Mysql在尝试使用where子句从两个不同的表中提取时出现查询错误


Mysql query error when trying to extract from two different tables with where clause

当我试图从列数据匹配的两个不同表(第一个表的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。