多表查询

Posted waterystone

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多表查询相关的知识,希望对你有一定的参考价值。

一、子查询

按返回结果分类:

  • 表子查询:返回的结果集是一个行的集合,N行N列(N>=1)。表子查询经常用于父查询的FROM子句中。
  • 行子查询:返回的结果集是一个列的集合,一行N列(N>=1)。行子查询可以用于福查询的FROM子句和WHERE子句中。
  • 列子查询:返回的结果集是一个行的集合,N行一列(N>=1)。
  • 标量子查询:返回的结果集是一个标量集合,一行一列,也就是一个标量值。可以指定一个标量表达式的任何地方,都可以用一个标量子查询。

 

1.1 表子查询

SELECT playerno
FROM 
    (SELECT playerno, sex
    FROM players
    WHERE playerno < 10) AS players10
WHERE sex=‘M‘;

  

1.2 行子查询

SELECT playerno
FROM players
WHERE (sex, town) = 
    (SELECT sex,
         town
    FROM players
    WHERE playerno = 100);

  

1.3 列子查询

SELECT playerno, name, town
FROM players
WHERE playerno IN 
    (SELECT playerno
    FROM players
    WHERE sex = ‘F‘);

  

1.4 标题子查询

SELECT playerno
FROM players
WHERE year(birth_date) = 
    (SELECT year(birth_date)
    FROM players
    WHERE playerno = 27)
        AND playerno <> 27; 

  

 

二、join

1.1 inner join

SELECT * FROM t_blog JOIN t_type ON t_blog.typeId=t_type.id;
SELECT * FROM t_blog,t_type WHERE t_blog.typeId=t_type.id;

  

1.2 left join

SELECT * FROM t_blog LEFT JOIN t_type ON t_blog.typeId=t_type.id;

  

 

以上是关于多表查询的主要内容,如果未能解决你的问题,请参考以下文章

python flask(多对多表查询)

MyBatis多表联查

phpcms v9后台多表查询分页代码

thinkphp3.1 多表联合查询代码

mysql 多表联合查询啥用

19.Sqlite多表连接查询及聚合函数的应用