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

ERROR 1064(42000):SQL構文にエラーがあります。近くに使用する権利 構文については、ご使用のMariaDBサーバのバージョンに対応 マニュアルをご確認ください「タンパク質を選択し、 タンパク質によってEXP3グループから(のmiRNA)を数える」私はEXP2と2つのテーブルを持っているライン1交差コマンドが機能しない

でexp3、どちらも共通の行がたくさんあるので、これらの2つのテーブルの共通データからクエリしたい私はProteinの共通データテーブルと対応する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)

これは私のために完璧に動作します。

関連する問題