假设我们有todos
表,其中的字段title
,deadline
和subtasks
表具有每个待办事项的子任务。
因此每个子任务都有content
和todo_id
字段。
如何获取所有子任务满足某些条件的待办事项?
例如content LIKE 'foo'
答案 0 :(得分:2)
您可以使用INNER JOIN
使用以下解决方案:
SELECT DISTINCT t.*
FROM todos t INNER JOIN subtasks st ON t.id = st.todo_id
WHERE st.content LIKE '%foo%'
...或使用EXISTS
:
SELECT *
FROM todos
WHERE EXISTS (
SELECT 1
FROM subtasks
WHERE todos.id = subtasks.todo_id AND subtasks.content LIKE '%foo%'
)
...或使用IN
:
SELECT *
FROM todos
WHERE id IN (
SELECT todo_id
FROM subtasks
WHERE content LIKE '%foo%'
)