【发布时间】:2014-03-31 02:09:56
【问题描述】:
我有多个具有关系的表。 有时我需要做一个连接只是为了检查 status = true 并且查询很大并且有点混乱......
想知道如何在大型项目中处理这种情况。
当时正在考虑创建一个包含 parent 和 status 的表来对所有条件进行分组——在这种情况下,只需要一个简单的查询来检查这个关系状态是 true 还是 false。
像这样:
select *
from table
where table.parent in (select id from tableB where status = 1)
or table.parent in (select id from tableC where status = 1)
or table.parent in (select id from tableD where status = 1)
这是一个好方法吗? 从未测试过,也不知道在多大程度上是最好的解决方案
谢谢
【问题讨论】:
-
您能否提供一些代码来解释您所指的内容?
-
您应该使用该信息编辑问题,而不是将其放入评论中。
-
@PapaCharlie:如果你清楚
status是1,那为什么要in?只需致电where table.parent=1。 -
抱歉,忘记更改了,正确的是
in (select id from tableB where status = 1),因为如果与 tabelaB 状态的关系成立,它会返回一个 id
标签: php mysql sql join relationship