SELECT DISTINCT table_code FROM dq_task AS t1, dq_subject AS t2 WHERE t2.project_Id =#{projectId} AND t2.is_deleted=FALSE这种写法和多表连接join有什么不同
时间: 2024-01-19 17:02:25 浏览: 123
SQL多表连接查询、多表关联
3星 · 编辑精心推荐
这种写法是使用了SQL中的隐式内连接,相当于使用了INNER JOIN语句。具体来说,这个查询语句中dq_task表和dq_subject表会根据t2.project_Id =#{projectId}作为连接条件进行连接,并且只返回dq_task表中唯一的不重复的table_code值。
而多表连接join语句则需要显式地指定连接条件,如下所示:
```
SELECT DISTINCT table_code
FROM dq_task
JOIN dq_subject ON dq_task.subject_id = dq_subject.subject_id
WHERE dq_subject.project_Id =#{projectId} AND dq_subject.is_deleted = FALSE
```
这条语句与上面那条语句的结果相同,但是使用了INNER JOIN语句来显式地指定连接条件。需要注意的是,JOIN语句还有其他类型,如LEFT JOIN、RIGHT JOIN和FULL OUTER JOIN等,可以根据实际需要进行选择。
总的来说,这两种写法的本质是相同的,都是用来连接多个表并从中查询数据。不同的是,隐式内连接使用起来更简洁,但是在连接复杂表结构时可能会出现问题。因此,在实际开发中,应该根据实际情况选择适合的连接方式。
阅读全文