【发布时间】:2013-10-21 09:25:00
【问题描述】:
我有一个包含三个表的表结构:profiles、profile_subrubriek 和 rubrieken。我使用以下查询查询数据:
SELECT profiles.hoofdrubriek, profiles.plaats
, profiles.bedrijfsnaam, profiles.gemeente, profiles.bedrijfsslogan
, profiles.straatnaam, profiles.huisnummer, profiles.postcode
, profiles.telefoonnummer, profiles.fax, profiles.email
, profiles.website, profiles.bedrijfslogo
FROM profiles INNER JOIN profile_subrubriek ON profiles.ID=profile_subrubriek.profile_id
INNER JOIN rubrieken ON profile_subrubriek.subrubriek_id=rubrieken.ID
where (
rubrieken.rubriek = 'Aannemersbedrijven'
OR
profiles.hoofdrubriek = 'Aannemersbedrijven')
AND profiles.gemeente = 'Dongen'
结果,0 行。这是不正确的。如果我取出 Inner Join 并且只在 WHERE clausule 中合并 'hoofdrubriek' 列,结果我得到大约 25 行,这是正确的。所以这个查询(上面的修改版本)确实有效:
SELECT profiles.hoofdrubriek, profiles.plaats, profiles.bedrijfsnaam
, profiles.gemeente, profiles.bedrijfsslogan, profiles.straatnaam
, profiles.huisnummer, profiles.postcode, profiles.telefoonnummer
, profiles.fax, profiles.email, profiles.website, profiles.bedrijfslogo
FROM profiles where (profiles.hoofdrubriek = 'Aannemersbedrijven')
AND profiles.gemeente = 'Dongen'
我做错了什么?
谢谢!
【问题讨论】:
-
将您的查询/代码分成多行 - 它们很难阅读
-
我建议您检查您的数据。
-
建议数据没有记录来匹配其他 2 个表中的profiles.hoofdrubriek = 'Aannemersbedrijven'。可能尝试使用左连接来查看返回的结果
-
这里也一样。您确定您
d like to retrieve has profile_subrubriek.profile_id and profile_subrubriek.subrubriek_id. In other words, are the join conditions ok for the data youd 想要获得的每个条目吗? -
使用 LEFT JOIN 就是答案!尽管我不太确定为什么..
标签: php mysql sql outer-join