2013-03-22 47 views
-1

嗯,我有四个表,我需要团结那些最初的2个,然后做一个内部联接与另一个联盟与其他两个表,我很坚持,我还是谢谢你内加入与两个工会

SELECT miRNA, Gene_Symbol FROM 
(SELECT cons.miRNA, cons.Gene_Symbol 
FROM conserved_site_context_scores cons 
WHERE cons.miRNA = 'hsa-miR-29c' 
UNION 
SELECT noncons.miRNA , noncons.Gene_Symbol 
FROM nonconserved_site_context_scores noncons 
WHERE noncons.miRNA = 'hsa-miR-29c' 
) AS targetScan 

SELECT mirna_name, gene_symbol FROM (
SELECT sc.mirna_name, sc.gene_symbol 
FROM hg19_predictions_s_c_aug2010 sc 
WHERE sc.mirna_name = 'hsa-miR-29c' 
UNION 
SELECT oc.mirna_name, oc.gene_symbol 
FROM hg19_predictions_0_c_aug2010 oc 
WHERE oc.mirna_name ='hsa-miR-29c' 
) AS microRNA 

INNER JOIN microRNA 
ON targetScan.miRNA = microRNA.mirna_name 
WHERE targetScan.miRNA = 'hsa-miR-29c'; 
+2

什么是你的问题?有没有按预期工作? – Tchoupi 2013-03-22 04:15:07

回答

1

我猜你想弄清楚如何JOIN上面的两个UNION声明?如果是的话,试试这个:

SELECT miRNA, Gene_Symbol 
FROM 
    (
    SELECT cons.miRNA, cons.Gene_Symbol 
    FROM conserved_site_context_scores cons 
    WHERE cons.miRNA = 'hsa-miR-29c' 
    UNION 
    SELECT noncons.miRNA , noncons.Gene_Symbol 
    FROM nonconserved_site_context_scores noncons 
    WHERE noncons.miRNA = 'hsa-miR-29c' 
) AS targetScan INNER JOIN 
    (
    SELECT mirna_name, gene_symbol 
    FROM (
     SELECT sc.mirna_name, sc.gene_symbol 
     FROM hg19_predictions_s_c_aug2010 sc 
     WHERE sc.mirna_name = 'hsa-miR-29c' 
     UNION 
     SELECT oc.mirna_name, oc.gene_symbol 
     FROM hg19_predictions_0_c_aug2010 oc 
     WHERE oc.mirna_name ='hsa-miR-29c' 
    ) AS microRNA 
     ON targetScan.miRNA = microRNA.mirna_name 
WHERE targetScan.miRNA = 'hsa-miR-29c'; 

我不认为你需要的最后WHERE标准的底部,因为它已经包含在UNION

+0

是的,那是我想要的,对不起,如果我不够清楚。谢谢 – 2013-03-22 04:34:21

+0

@BrunoAndrade - np,这就是我认为你想要的。很高兴我们可以帮忙! – sgeddes 2013-03-22 04:35:00

1

试试这个:

SELECT miRNA, Gene_Symbol 
FROM (
     SELECT cons.miRNA, cons.Gene_Symbol 
     FROM conserved_site_context_scores cons 
     WHERE cons.miRNA = 'hsa-miR-29c' 

     UNION 

     SELECT noncons.miRNA, noncons.Gene_Symbol 
     FROM nonconserved_site_context_scores noncons 
     WHERE noncons.miRNA = 'hsa-miR-29c' 
    ) AS targetScan 
Inner Join 
(
    SELECT mirna_name, gene_symbol 
    FROM (
    SELECT sc.mirna_name, sc.gene_symbol 
    FROM hg19_predictions_s_c_aug2010 sc 
    WHERE sc.mirna_name = 'hsa-miR-29c' 

    UNION 

    SELECT oc.mirna_name, oc.gene_symbol 
    FROM hg19_predictions_0_c_aug2010 oc 
    WHERE oc.mirna_name = 'hsa-miR-29c' 
    )tbl 
)AS microRNA 
    ON targetScan.miRNA = microRNA.mirna_name 
WHERE targetScan.miRNA = 'hsa-miR-29c'; 
+0

谢谢。 :DDD – 2013-03-22 04:34:40