Mysql:使用返回的部分数据行来获取更多数据

标签 mysql

我将一个项目的 id 传递给我的模型,我想在查询中使用该项目 id 来查找它的area_id,并从那里返回具有相同area_id 的任何其他项目。我不知道该怎么做,我查看了子查询,但它对我来说似乎不正确。这是我的结构。

项目:

ID -- Title -- Area_id(FK) -- Description -- Date_added

区域:

ID -- Place -- Date_Added

感谢您的帮助

强尼

最佳答案

首先,选择您的项目:

SELECT Area_id FROM Item i WHERE ...

这样你就得到了一个区域ID

现在必须获取给定区域中的所有项目:

SELECT * From Item WHERE Area_id IN (...)

将两个查询放在一起:

SELECT * From Item WHERE Area_id IN (SELECT Area_id FROM Item i WHERE ...)

大功告成!

请注意,子查询对性能不利,因此我建议您在数据库增长时进行基准测试并密切关注此查询,然后在遇到性能问题时对其进行优化。

关于Mysql:使用返回的部分数据行来获取更多数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17095018/

相关文章:

mysql - 在 where 子句中遇到 SQL 查询问题

mysql复制滞后巨大

mysql - 将乐高设计与件数和件数相匹配的 SQL 查询

php - 通过 PHP + JSON 从 MySql 获取状态

MySQL写锁优先级

mysql - SQL 查询基准测试

mysql :Exclude row that does not satisfy the condition list

php - undefined variable - 作品

mysql - SQL - 如何执行这种类似连接的操作?

mysql - 如何在单个查询中的单个行中显示单个字段的多个值?