MySQL查询之关系查询

连接查询:select table_b.type,table_b.title,table_b.content,table_b.author from table_a left join table_b on table_a.type = table_b.type where table_a.id = 1;

子查询:   select type,title,content,author from table_b WHERE type = (SELECT type from table_a WHERE id = 1);

如果一个id对应多个type,则用 select type,title,content,author from table_b WHERE type in (SELECT type from table_a WHERE id = 1);

结果如下:

采用最普通的查询(不采用关系表或中间表的形式),也可以得到相同的效果,如下:

SELECT * from table_b WHERE type = 'a';

那为什么还要花费如此大的力气去建立一个关系表呢?

这两种方式的不同点在于,第二种直接在详情表中查询所有为a类的记录;而第一种则是通过参数id获取到a类别,再到详情表获取所有a类的记录

我个人认为原因可能有:1、加入关系表或中间表,能让数据间的关系更加明确;2、前端传递过来的是一个id参数,后台只通过此id参数去进行一系列的查询,一定程度上保证了数据的安全性。

原文地址:https://www.cnblogs.com/chenyongyang/p/7975818.html