如何使用 SQL 进行可选 JOIN
Posted
技术标签:
【中文标题】如何使用 SQL 进行可选 JOIN【英文标题】:How can I do an Optional JOIN using SQL 【发布时间】:2015-07-21 10:49:01 【问题描述】:我想返回来自biometrics
的所有行,并在存在 JOIN 时获取额外数据。但是,我当前的查询仅在用户 ID 匹配时返回行。
我该如何解决这个问题,以便它返回所有生物特征行,以及来自 JOIN 的额外数据(如果存在)?
SELECT b.id as id, g.date
FROM `biometrics` as b
INNER JOIN `users goals` as g ON biometricid = b.id and userid = $user->id
【问题讨论】:
将INNER
更改为LEFT
【参考方案1】:
使用左外连接:
SELECT b.id as id, g.date
FROM `biometrics` as b
LEFT OUTER JOIN `users goals` as g ON biometricid = b.id and userid = $user->id
可以在here找到不同连接类型的好例子。
【讨论】:
以上是关于如何使用 SQL 进行可选 JOIN的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Oracle 8i 中指定可选的 OUTER JOIN 条件