【发布时间】:2015-01-25 17:06:26
【问题描述】:
我正在努力解决: 如果我有三个连接表,即 表A表B表C
如果 tableA 的记录和 NULL 值不存在,如何在 B&C 中始终拥有它们? 见http://www.sqlfiddle.com/#!9/65dd5/6
第二个例子自然不会返回任何内容,第二个或第三个表都没有匹配的ID,但我仍然需要返回TableA的内容
==== 编辑 =====
我认为我在提供信息方面没有多大帮助。我的错!。
这是实际查询:
SELECT
cf_definitions.id,
cf_definitions.`name`,
cf_definitions.parentmodel,
cf_definitions.type,
cf_definitions.`options`,
cf_definitions.class,
cf_definitions.description,
cf_joins.cf_definitionid,
cf_joins.cf_childid,
cf_joins.cf_valueid,
cf_values.id,
cf_values.`value`
FROM
cf_definitions
LEFT JOIN cf_joins ON cf_joins.cf_definitionid = cf_definitions.id
LEFT JOIN cf_values ON cf_joins.cf_valueid = cf_values.id
WHERE
cf_definitions.parentmodel = 'location' AND cf_joins.cf_childid = 1
因此,如果我有带有连接条目的记录,那就没问题了。
但是,我真正需要的是(在伪代码中)如果 cf_joins.cf_childid 不存在,仍然从 cf_definitions 返回记录。
(将其放在上下文中,这是用于自定义表单字段,我本质上是在定义中定义表单架构,然后“如果”页面具有值(即 childid),然后返回完整的行值,否则返回空值)。
我很感激我可能会违背 JOIN 的实际意图?
【问题讨论】:
-
理想情况下,您应该在问题本身中提供答案所需的所有详细信息,避免异地参考。