如何在CakePHP 2中更正此查询?

时间:2015-03-25 22:08:06

标签: php cakephp

我有一个我想在CakePHP 2.5.5中创建的查询。

我的数据库有两个对此问题感兴趣的表。第一个是Members,第二个是MemberStateLicensesMembers是有关该成员的信息,MemberStateLicenses是成员在不同州拥有的许可证表。

此粘贴包含在将查询传递给find方法之前为查询构建的数组:http://pastebin.com/kM18nKpr

我正在尝试查询居住在某个州或在州内获得许可的任何成员。例如:

  • Select all members who live in Michigan, or are licensed in Ohio
  • Select all members who live in Maryland, or are licensed in Maryland

这是失败的情况:

  • 约翰住在俄亥俄州。
  • John没有任何许可证。
  • 我查询住在俄亥俄州或在俄亥俄州获得许可的任何人。
  • 没有结果,即使约翰住在俄亥俄州。
  • 我在加利福尼亚给了约翰一张执照,并重复同样的俄亥俄州/俄亥俄州查询。正如所料,约翰被送回。

因此,当成员在MemberStateLicenses中没有记录时,此查询失败。

我的问题是:

  • 我的查询有什么问题,排除任何没有MemberStateLicenses记录的成员?

谢谢!

1 个答案:

答案 0 :(得分:0)

我的查询有什么问题,排除了没有任何成员国犯罪记录的成员?

您在Member和MemberStateLicenses之间有一个内部联接,这意味着只能选择在MemberStateLicenses中至少有一个相应记录的Member记录。

尝试将内连接更改为LEFT JOIN。