2016-11-30 48 views
-1
MariaDB [object]> select Protein, count(mirna) from exp2 
INTERSECT select Protein, count(mirna) from exp3 group by Protein; 

错误1064(42000):您的SQL语法错误;检查对应于您MariaDB的服务器版本的权利 语法使用附近的 手册“选择蛋白,通过计算蛋白质 从EXP3组(miRNA的)”在1号线相交命令不起作用

我有两个表EXP2和exp3,都有很多常见的行,我想从这两个tables.ie的常见数据中查询我想要一个共同的蛋白质数据表和数量相应的miRNA数量表。

我使用lampp,我该如何解决这个查询?

+0

感谢您编辑问题的格式。 – user7108953

回答

1

MySQL不提供INTERSECT操作。你需要使用类似JOIN操作的东西。此示例禁止与ON条件不匹配的所有行。

SELECT a.Protein, a.mirnacount 
    FROM (SELECT Protein, count(mirna) mirnacount from exp2 group by Protein) a 
    JOIN (SELECT Protein, count(mirna) mirnacount from exp3 group by Protein) b 
    ON a.Protein = b.Protein AND a.mirnacount = b.mirnacount 

如果您的项目需要完整的设置操作,您可以考虑切换到PostgreSQL。

+0

它返回一个空集 – user7108953

0

SELECT T1.Protein,count(T1.miRNAID) FROM exp2 AS T1 INNER JOIN exp3 AS T2 ON T1.Protein = T2.Protein AND T1.Target_Protein_id= T2.Target_Protein_id AND T1.miRNAID=T2.miRNAID
GROUP BY T1.Protein ORDER BY count(T1.miRNAID)

这完全适用于我。