将查询与过滤器相结合的最有效/简洁的方法?

时间:2013-07-31 20:54:11

标签: mysql sql

查询#1:

SELECT

destination_content.content,
destination_content.state

FROM destination_content

给我

State   Content
AZ      Lorem
AZ      Ipsum
AZ      Dolor
NC      Sit
NY      Blabla

查询#2:

SELECT

properties.state,
properties.name

FROM properties

WHERE properties.active = 1

给我

State   Content

AZ      Ritz Carlton
AZ      Hotel Malala
NY      Gilt NY

我想将查询#1与查询#2结合起来,以便:

我得到了查询#1的结果,但是它被过滤了以便

的结果
NC   Sit

不会出现。

最终结果应为:

State   Content

AZ      Lorem
AZ      Ipsum
AZ      Dolor
NY      Blabla

没有出现,因为北卡罗来纳州没有活动房产。所以我想按活动属性状态进行过滤。

组合这些查询的最简洁方法是什么?

修改 也许我的大脑没有工作ATM,但我试过INNER JOIN properties ON ( destination_content.state = properties.state ),但这给了我比我需要更多的行结果。最初我回来230因为有230个内容片段,但在加入后它变成了大约1000个。我忘记了什么?

1 个答案:

答案 0 :(得分:1)

您应该加入表格:

SELECT dc.content, dc.state
FROM destination_content dc
INNER JOIN properties p ON  ( dc.state = p.state AND dc.content = p.content )
WHERE p.active = 1

如果每个表中都有主键(ID),那么连接表应该更容易BTW。