【发布时间】:2014-09-30 12:21:50
【问题描述】:
我正在编写其他一些开发人员代码,需要简化此查询,格式如下。
SELECT
table1.id, table2.userid, table4.groupid
FROM
table1, table2, table3, table4
WHERE
userid = table4_userid
and
table2.id = table3.table2_id
and
table1.table3_id = table3.id
and
table3.statement_id = 264803
order by table4_groupid
但我习惯于通过明确提及连接类型(即左、右或外连接)来连接查询。我还使用 TableName.TableField 以便我知道哪个字段来自哪个表。但是,正如您在上面看到的,它有点混合了 tablename.tablefield 和只是 tablefield。上面的查询工作正常,但我需要将 table4 设置为 LEFT JOIN,这样如果 table4 中没有任何匹配的行,它仍然应该显示一些数据。
我的问题是:
1) 上面有哪些类型的连接?
2) 如何更改上述查询以使 table4 成为 LEFT JOIN?
我知道您可能想要原始查询,但我只需要指向正确方向的一些小提示,其余的我会自己做。
【问题讨论】: