将查询与筛选器组合的最有效/最简洁的方式



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

您应该加入表:

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联接表应该会容易得多。

相关内容

最新更新