1.SQL解析
1.SQL查询左连接、右连接、内连接
1.左连接:
是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。左连接全称为左外连接,是外连接的一种。
示例一:
条件:A表中的只有1条记录,B表中2条记录,B表的2条记录bno都等于ano,
SQL语句:select * from A left join B on ano=bno;
解释:将A表的记录都查询出来,B表中bno等于ano的都查询出来了且左侧为ano对应的信息。
示例二:
条件:A表中存在的ano,B表中不存在对应的bno;
SQL语句:select * from A left join B on ano=bno;
解释:A表的记录全部查询出来而且如果B没有bno=ano的记录时右侧显示为空,B表中只有bno=ano的记录查询出来了。
2.右连接:
是以右表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将右表所有的查询信息列出,而左表只列出ON后条件与右表满足的部分。右连接全称为右外连接,是外连接的一种。
示例:
条件:A表中的只有1条记录,B表中2条记录,B表的2条记录bno都等于ano,
SQL语句:select * from A right join B on a.id=b.id;
解释:a表只显示和b表id相等的2行数据,b表的记录全部显示出来
3.内连接:
- 也称为等值连接,返回两张表都满足条件的部分
示例:
SELECT
st.accession_no,
lo.storage_path
FROM
study st
INNER JOIN series se ON st.pk = se.study_fk
INNER JOIN instance it ON se.pk = it.series_fk
INNER JOIN location lo ON it.pk = lo.instance_fk
WHERE
st.id = '5485178907989083720'
ORDER BY
lo.pk DESC
LIMIT 1;