在建设银行网站申请完信用卡吗,wordpress 变换模板,2017年网站建设视频教程,公司网站页脚在上一篇文章SQL实践#xff1a;利用tag检索文件的多种情况讨论中#xff0c;我们介绍了在使用外键的方式为数据关联tag后#xff0c;如何筛选#xff1a;
如何筛选包含某一个tag的数据如何筛选包含且只包含某一个tag的数据如何筛选包含多个指定tag的数据
这篇文章主要是…在上一篇文章SQL实践利用tag检索文件的多种情况讨论中我们介绍了在使用外键的方式为数据关联tag后如何筛选
如何筛选包含某一个tag的数据如何筛选包含且只包含某一个tag的数据如何筛选包含多个指定tag的数据
这篇文章主要是讲解如何筛选没有绑定任何tag的数据。
上一篇文章中只用到了JOIN语法中的INNER JOIN但用INNER JOIN是无法筛选出没有绑定tag数据的情况的因为没有绑定tag的数据根本不会出现在结果中。
因为 (INNER) JOIN: Returns records that have matching values in both tables (INNER) JOIN: 返回两张表中含有匹配值的条目 还是以上一篇文章中的3张表格为例下面使用INNER JOIN筛选出的结果中只有file1、file2、file3的信息不会包含file4。
SELECT f.*
FROM files f
JOIN fileTagRelations ftr ON f.id ftr.file-id;此时要使用LEFT JOIN LEFT (OUTER) JOIN: Returns all records from the left table, and the matched records from the right table LEFT (OUTER) JOIN: 返回左边表中的所有条目以及右边表中含有匹配值的条目 利用如下代码结果中出了包含file1、file2、file3以外也会包含file4。
SELECT f.*
FROM files f
LEFT JOIN fileTagRelations ftr ON f.id ftr.file-id;那么在此基础上如何筛选出没有绑定tag的数据呢
只需要筛选出fileTagRelations.id为NULL的情况即可另外可以利用DISTINCT去重
如下代码就可以筛选出没有绑定tag的数据
SELECT DISTINCT( f.id), f.*
FROM files f
LEFT JOIN fileTagRelations ftr ON f.id ftr.file-id
WHERE ftr.id IS NULL;结果为file4