我如何在 CakePHP 2 中更正此查询?
How can I correct this query in CakePHP 2?
我想在 CakePHP 2.5.5 中创建一个查询。
我的数据库中有两个 table 与此问题相关。第一个是 Members
,第二个是 MemberStateLicenses
。 Members
是该成员的信息,MemberStateLicenses
是成员在各个州持有的 table 执照。
此粘贴包含在传递给 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 没有任何许可证。
- 我查询居住在俄亥俄州或在俄亥俄州获得执照的任何人。
- 没有结果,尽管约翰确实住在俄亥俄州。
- 我给约翰颁发了加利福尼亚州的驾照,然后重复相同的 Ohio/Ohio 查询。约翰如期归来。
因此,当成员在 MemberStateLicenses 中没有记录时,此查询失败。
我的问题是:
- 我的查询排除任何没有
MemberStateLicenses
记录的成员有什么问题?
谢谢!
我的查询排除任何没有 MemberStateLicenses 记录的成员有什么问题?
您在 Member 和 MemberStateLicenses 之间有一个内部连接,这意味着只能选择在 MemberStateLicenses 中至少有一个对应记录的 Member 的记录。
尝试将内部联接更改为 LEFT JOIN。
我想在 CakePHP 2.5.5 中创建一个查询。
我的数据库中有两个 table 与此问题相关。第一个是 Members
,第二个是 MemberStateLicenses
。 Members
是该成员的信息,MemberStateLicenses
是成员在各个州持有的 table 执照。
此粘贴包含在传递给 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 没有任何许可证。
- 我查询居住在俄亥俄州或在俄亥俄州获得执照的任何人。
- 没有结果,尽管约翰确实住在俄亥俄州。
- 我给约翰颁发了加利福尼亚州的驾照,然后重复相同的 Ohio/Ohio 查询。约翰如期归来。
因此,当成员在 MemberStateLicenses 中没有记录时,此查询失败。
我的问题是:
- 我的查询排除任何没有
MemberStateLicenses
记录的成员有什么问题?
谢谢!
我的查询排除任何没有 MemberStateLicenses 记录的成员有什么问题?
您在 Member 和 MemberStateLicenses 之间有一个内部连接,这意味着只能选择在 MemberStateLicenses 中至少有一个对应记录的 Member 的记录。
尝试将内部联接更改为 LEFT JOIN。