私はSQLクエリを書く方法がわかりません。難しいSQLクエリすべてとすべての場合
考えるデータ:
いくつかの形質識別子の整数は - 私は特定の形質に割り当てられているSNPを見つけるするなdomain_idを探しています1、447
としましょう。 SNPは、genomic_pos
がドメインstart
とend
との間にあり、chr_id
が同じドメインの場合はドメインにあります。 2例の任意とすべてがあります
- 私はすべての与えられた特性からのSNPを見つけることが可能なドメインを探しているすべての場合。言い換えれば、すべての形質はドメイン内にsnp表現を持っています。
- 任意ケース私は特定のドメインからsnpsを見つけることができるドメインを探しています。つまり、ドメイン内の任意の特性のsnp表現を1つだけ見つけるだけで十分です。
私はすでにどの場合を解決してきましたが、私はですべてケースを立ち往生:(
ここは、任意のコードです:ここでは
SELECT DISTINCT domains.domain_id
FROM snps JOIN traits_snps ON snps.snp_id = traits_snps.snp_id
JOIN traits ON traits.trait_id = traits_snps.trait_id
JOIN chromosomes ON snps.chr_id = chromosomes.chr_id
JOIN domains ON domains.chr_id = chromosomes.chr_id
WHERE traits.trait_id in (447,1) -- <-- HERE GOES TRAIT IDS
AND genomic_pos BETWEEN start AND end
AND domains.chr_id = snps.chr_id;
'SELECT DISTINCT'は、非常に多くの場合、あなたはuneccessarily以降のみ重複として多くの行を却下しなければならないためにテーブルを結合することにより、大規模な中間結果を構築不十分書かれたクエリのための指標です。私の答えを見てください。 –