【发布时间】:2014-10-25 21:19:05
【问题描述】:
我正在尝试根据另一个表中的数据从一个表中选择数据。我的代码遵循以下提供的答案:Update SQLite table based on data in another table
但我无法让它产生我希望的结果。我的陈述如下:
c.execute("SELECT item1, item2, item3 FROM TableA WHERE xyz IS NULL AND item1 = (SELECT item1 FROM TableB) AND item2 = (SELECT item2 FROM TableB) AND item3 = (SELECT item3 FROM TableB)"
我正在尝试从 TableA 中选择所有匹配结果,其中 tableB 中的 item1、item2 和 item 3 与 TableA + 中的匹配结果,其中 TableA 的 xyz 值为 NULL。
*TableA*
item1 | item2 | item3 | xyz
banana | apple | pear | NULL
carrot | potato | sausage | 1
cat | dog | bird | NULL
fish | squid | tortoise | 4
*TableB*
item1 | item2 | item3
banana | apple | pear
cat | dog | bird
fish | squid | tortoise
foo | bar | deadbeef
所以,我正在尝试选择:
banana, apple, pear
cat, dog, bird
但我的语句只返回 tableB 中的第一个匹配项:
即banana, apple, pear;并且不会继续搜索表 B 中的其余项目。
为什么会发生这种情况,可以解决吗?
【问题讨论】: