Python sqlite3 Column1 val的第2列val等于数字,val也等于另一个数字

时间:2017-06-29 22:48:03

标签: python-2.7 sqlite

我不知道如何用可搜索的方式来表达我的问题,如果已经回答,请原谅我。我对SQL命令不够熟悉,甚至没有指出我正确的方向。我有一个sqlite表链接另外两个表。例如:

╔═════╦══════════╦══════════╗
║ 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 AND ClassKey = 12的SpellKey。提供的数据集的结果应返回:2和4。

" WHERE"语句如" ... WHERE ClassKey = 2 AND ClassKey = 12"没有工作,因为显然一行不能同时是2和12。如果可能的话,我想要一个可以做到这一点的sqlite3语句。

1 个答案:

答案 0 :(得分:1)

我找到了一种使用“自联接”方法的解决方案。

SELECT A.SpellKey
FROM TableName A, TableName B
WHERE A.SpellKey = B.SpellKey
AND A.ClassKey=2 AND B.ClassKey=12