我正在写一个家庭使用的应用程序,并决定使用SQLite作为数据库来学习一些SQL。
该应用程序的工作原理如下:
- 有一组
people
,他们有一个名字→这个信息来自位置A,并反映在people
表中。 - 我从一个不相关的源B得到了一些结果(表
results
),其中包含一个action
的结果,并指向一个“用户引用”(也来自B) - 我通过将源B用户指向“人”手动链接了这两个世界。
我现在想得到一个没有做他们应该做的事情的people.name
的表(即done
对他们来说是NULL
)。
这是我以前的业余开发经验不再有帮助的地方:如何连接这三个表,以便我可以从一个表(SELECT name from people
)SELECT
,但在两跳之外的表上放置条件。
我原以为OUTER JOIN
是一个solution(我现在仍然这么认为),但我有一个中间表。
我该怎么做?
1条答案
按热度按时间tf7tbtn21#
加入两次:
这里我们将表
app_user
连接到表people
,然后将results
连接到前面的结果。如果表
results
包含未完成任务的行,则不需要外部连接。如果表
results
不包含未完成任务的行,则需要使用where
子句进行外部连接。希望这对你的困惑有所帮助。