Home >Database >Mysql Tutorial >How to perform multi-table query in mysql

How to perform multi-table query in mysql

青灯夜游
青灯夜游Original
2019-05-14 11:24:5358386browse

Mysql method for multi-table query: 1. Use the SELECT clause to query; 2. Use the alias of the table to query; 3. Query through inner joins; 4. Query through nesting; 5. Query through multiple table joins.

How to perform multi-table query in mysql

#How to perform multi-table query in MySQL? The following article will introduce to you some MySQL methods for multi-table query. I hope it will be helpful to you.

(Recommended tutorial: mysql video tutorial)

1. Use SELECT clause for multi-table query

SELECT 字段名 FROM 表1,表2 … WHERE 表1.字段 = 表2.字段 AND 其它查询条件

Example :

SELECT a.id,a.name,a.address,a.date,b.math,b.english,b.chinese FROM tb_demo065_tel AS b,tb_demo065 AS a WHERE a.id=b.id

Note: In the above code, the association between the two tables is established based on the condition that the id field information of the two tables is the same, but it should not be used in this way in actual development. It is best to use primary and foreign key constraints. To achieve

2. Use table aliases for multi-table queries

Example:

SELECT a.id,a.name,a.address,b.math,b.english,b.chinese FROM tb_demo065  a,tb_demo065_tel  b WHERE a.id=b.id AND b.id='$_POST[textid]'

In SQL language, you can use two The method is to specify an alias for the table:

1. Specify it through the keyword AS, such as

SELECT a.id,a.name,a.address,b.math,b.english,b.chinese FROM tb_demo065 AS a,tb_demo065_tel AS b WHERE a.id=b.id

2. Add the alias of the table directly after the table name to achieve

SELECT a.id,a.name,a.address,b.math,b.english,b.chinese FROM tb_demo065  a,tb_demo065_tel  b WHERE a.id=b.id

A few points should be noted when using table aliases

●(1An alias is usually a shortened table name, used to refer to specific columns in the table in a connection. If there are multiple If a column with the same name exists in the table, the column name must be qualified with the table name or table alias
● If the table alias is defined, the table name cannot be used

3. Simple nesting Query (subquery, inner join)

Subquery: A subquery is a SELECT query that returns a single value and is nested in SELECT, INSERT, UPDATE and DELETE statements or other query statements. Any Subqueries can be used wherever expressions are used. Example:

SELECT id,name,sex,date FROM tb_demo068 WHERE id in(SELECT id FROM tb_demo068 WHERE id='$_POST[test]')

Inner join: Using the query result as the query condition of the WHERE clause is called an inner join

SELECT filedlist FROM table1 [INNER] JOIN table2 ON table1.column1 = table2.column1

Among them, filedlist is the The displayed fields, INNER, indicate that the connection mode between tables is inner connection, table1.column1=table2.column1 is used to specify the connection conditions between the two tables, such as:

SELECT a.name,a.address,a.date,b.chinese,b.math,b.english FROM tb_demo065 AS a INNER JOIN tb_demo065_tel AS b on a.id=b.id

4. Complex embedding Nested query

Nested query between multiple tables can be realized through predicate IN. The syntax format is as follows:

test_expression[NOT] IN{
 subquery
}

Parameter description: test_expression refers to the SQL expression, subquery contains Subquery of a certain result set

The principle of multi-table nested query: No matter how many tables are nested, there must be some kind of correlation between tables. This correlation is established through the WHERE clause to implement the query.

5. Multi-table joint query

Using UNION in SQL statements, qualified data information in different tables can be displayed in the same column. Example:

SELECT * FROM tb_demo074_student UNION SELECT * FROM tb_demo074_fasten

When using UNION, you should pay attention to the following two points:

● In statements combined using the UNION operator, the number of expressions in all selection lists must be the same, such as column names, arithmetic expressions, aggregate functions, etc.
●In each query table, the data structure of the corresponding columns must be the same.

6. Complex inner join query

Complex inner join query is based on the basic inner join query and adds some query conditions, such as:

SELECT a.name,a.address,a.date,b.chinese,b.math,b.english FROM tb_demo065 AS a INNER JOIN tb_demo065_tel AS b on a.id=b.id WHERE b.id=(SELECT id FROM  tb_demo065 WHERE tb_demo065.name='$_POST[text]')

In short, the essence of realizing the association between tables is that there are common data items or the same data items between the two tables. The two tables are connected through the WHERE clause or the INNER JOIN...ON statement. Implement the query.

The above is the detailed content of How to perform multi-table query in mysql. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn