2017-06-29 6 views
1

検索可能な方法で私の質問をどのように語るのか分かりません。私は正しい方向に私を指すためにSQLコマンドで十分に精通していない。私は2つの他のテーブルをリンクするsqliteテーブルがあります。例:Python sqlite3 Column1 valには、Column 2のvalとnumberの値があり、valは別の値と同じです。

 
╔═════╦══════════╦══════════╗ 
║ key ║ SpellKey ║ ClassKey ║ 
╠═════╬══════════╬══════════╣ 
║ 1 ║  2 ║  2 ║ 
║ 2 ║  2 ║  10 ║ 
║ 3 ║  2 ║  12 ║ 
║ 4 ║  3 ║  10 ║ 
║ 5 ║  3 ║  12 ║ 
║ 6 ║  4 ║  2 ║ 
║ 7 ║  4 ║  12 ║ 
╚═════╩══════════╩══════════╝ 

ClassKeyとSpellKeyは外部キーです。目標は、ClassKey = 2およびClassKey = 12のすべてのSpellKeyを見つけることです。提供されたデータセットの結果は、2と4を返す必要があります。

「WHERE」のような文は、明らかに行が2と12の両方になることはできないため、「WHERE ClassKey = 2 AND ClassKey = 12」は機能しません。同時に。可能であれば、これを行うことができる単一のsqlite3ステートメントが必要です。

+0

私は[この](https://stackoverflow.com/questions/11397757/sql-count-group-by-bigger-than)だと思うが、私ドン、あなたが – Nullman

+0

探しているものです私の状況に当てはまるものを操作する方法を知っていません。 "GROUP BY"および "HAVING"ステートメントは、countなどの集計関数で通常使用されます。しかし、私はカウントを必要としません、私は、特定の一意のSpellKeyがこの例では2と12のClassKeysに対応する2つの行を持つSpellKey値が必要です。 –

答えて

1

「自己結合」メソッドを使用する解決策が見つかりました。もしそうであれば

SELECT A.SpellKey 
FROM TableName A, TableName B 
WHERE A.SpellKey = B.SpellKey 
AND A.ClassKey=2 AND B.ClassKey=12 
関連する問題