我有一个查询,我正试图在CakePHP 2.5.5中创建它。
我的数据库中有两个表对此问题感兴趣。第一个是Members
,第二个是MemberStateLicenses
。Members
是关于该成员的信息,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
这是一个失败的场景:
- 约翰住在俄亥俄州
- 约翰没有任何执照
- 我想知道谁住在俄亥俄州或在俄亥俄州有执照
- 没有结果,尽管约翰确实住在俄亥俄州
- 我给约翰在加利福尼亚州的执照,并重复同样的俄亥俄州/俄亥俄州查询。不出所料,约翰回来了
因此,当成员在MemberStateLicenses中没有记录时,此查询将失败。
我的问题是:
- 我的查询排除了任何没有
MemberStateLicenses
记录的成员,这有什么问题
谢谢!
排除任何没有MemberStateLicenses记录的成员的查询有什么问题
您在Member和MemberStateLicenses之间有一个内部联接,这意味着只能选择Member中至少有一个相应记录的记录。
尝试将内部联接更改为LEFT JOIN。