0

查询 #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 左右。我忘记了什么?

4

1 回答 1

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),那么连接表应该会容易得多。

于 2013-07-31T21:05:15.490 回答