Sql 选择*其子记录满足某些条件的父记录
假设我们有Sql 选择*其子记录满足某些条件的父记录,sql,Sql,假设我们有todo表,其中包含字段title,deadline和子任务表,每个todo都有子任务 因此,每个子任务都有内容和待办事项id字段 如何获取子任务内容满足某些条件的所有TODO 例如,像“foo”这样的内容您可以使用内部联接使用以下解决方案: SELECT DISTINCT t.* FROM todos t INNER JOIN subtasks st ON t.id = st.todo_id WHERE st.content LIKE '%foo%' SELECT * FRO
todo
表,其中包含字段title
,deadline
和子任务
表,每个todo都有子任务
因此,每个子任务都有内容
和待办事项id
字段
如何获取子任务内容满足某些条件的所有TODO
例如,像“foo”这样的
内容
您可以使用内部联接使用以下解决方案:
SELECT DISTINCT t.*
FROM todos t INNER JOIN subtasks st ON t.id = st.todo_id
WHERE st.content LIKE '%foo%'
SELECT *
FROM todos
WHERE id IN (
SELECT todo_id
FROM subtasks
WHERE content LIKE '%foo%'
)
。。。或使用存在
:
SELECT *
FROM todos
WHERE EXISTS (
SELECT 1
FROM subtasks
WHERE todos.id = subtasks.todo_id AND subtasks.content LIKE '%foo%'
)
。。。或在
中使用:
SELECT DISTINCT t.*
FROM todos t INNER JOIN subtasks st ON t.id = st.todo_id
WHERE st.content LIKE '%foo%'
SELECT *
FROM todos
WHERE id IN (
SELECT todo_id
FROM subtasks
WHERE content LIKE '%foo%'
)
您可以使用内部联接使用以下解决方案:
SELECT DISTINCT t.*
FROM todos t INNER JOIN subtasks st ON t.id = st.todo_id
WHERE st.content LIKE '%foo%'
SELECT *
FROM todos
WHERE id IN (
SELECT todo_id
FROM subtasks
WHERE content LIKE '%foo%'
)
。。。或使用存在
:
SELECT *
FROM todos
WHERE EXISTS (
SELECT 1
FROM subtasks
WHERE todos.id = subtasks.todo_id AND subtasks.content LIKE '%foo%'
)
。。。或在
中使用:
SELECT DISTINCT t.*
FROM todos t INNER JOIN subtasks st ON t.id = st.todo_id
WHERE st.content LIKE '%foo%'
SELECT *
FROM todos
WHERE id IN (
SELECT todo_id
FROM subtasks
WHERE content LIKE '%foo%'
)
标记数据库名称并同时添加样本和预期数据。标记数据库名称并同时添加样本和预期数据。