rel="File-List" href="file:///C:%5CDOCUME%7E1%5CDell-01%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml">
inner join(
等
值连
接
)
只返回两个表中
联结
字
段相等的行
left join( 左 联 接 ) 返回包括左表中的所有 记录 和右表中 联结 字段相等的 记录
right join( 右 联 接 ) 返回包括右表中的所有 记录 和左表中 联结 字段相等的 记录
on 指定表 间联结 字段及其 关 系的等号 "=" 表达式 , 返回 true 或 false. 当表达式返回 true 时 , 则查询 中包含 该记录
举例说明:
01 Adams,john
02 bush, George
03 Jim, Care
04 Lily, Lucy
001 printer 01
002 table 03
003 book 03
我们可以从引用两个表的方式,从两个表中获得数据
谁订购了产品,并且他们订购了什么产品?
SQL 语句如下:
FROM Employees
LEFT JOIN Orders
ON Employees.Employee_ID=Orders.Employee_ID
RIGHT JOIN
EXAMPLE:
列出所有的定单,以及定购者 - 如果有的话。
SELECT Employees.Name, Orders.Product
FROM Employees
RIGHT JOIN Orders
ON Employees.Employee_ID=Orders.Employee_ID
右连接会从第二个表格 (Orders) 那里返回所有的行,即使在第一个表格中没有可匹配的行。
假如 Orders 中的某些行没有在 Employees 可匹配的行,那些行也会被列出。
Name Product
Adams,john printer
Jim, Care table
Jim, Care book
UNION 浅谈:
UNION 命令用于从两个表中选取相关的信息,很类似 JOIN 命令。不过,当使用 UNION 命令时,
所有被选取的列的数据类型应该是相同的。
UNION ALL 命令和 UNION 命令几乎是等效的,不过 UNION ALL 命令会列出所有的值。
语法如下:
SQL Statement 1
UNION
SQL Statement 2
left join( 左 联 接 ) 返回包括左表中的所有 记录 和右表中 联结 字段相等的 记录
right join( 右 联 接 ) 返回包括右表中的所有 记录 和左表中 联结 字段相等的 记录
on 指定表 间联结 字段及其 关 系的等号 "=" 表达式 , 返回 true 或 false. 当表达式返回 true 时 , 则查询 中包含 该记录
举例说明:
表 Employees(主键为Employee_ID):
Employee_ID Name01 Adams,john
02 bush, George
03 Jim, Care
04 Lily, Lucy
表 Orders(主键为Prod_ID):
Prod_ID Product Employee_ID001 printer 01
002 table 03
003 book 03
我们可以从引用两个表的方式,从两个表中获得数据
谁订购了产品,并且他们订购了什么产品?
SQL 语句如下:
SELECT Employees.Name, Orders.Product FROM Employees, Orders
WHERE Employees.Employee_ID = Orders.Employee_ID
结果:
Name | Product |
---|---|
Adams, John | Printer |
Jim, Care | Table |
Jim, Care | book |
谁订购了打印机?
SELECT Employees.Name
FROM Employees, Orders
WHERE Employees.Employee_ID = Orders.Employee_ID
AND Orders.Product = 'Printer'
结果:
NAME PRODUCT
Adams, John Printer
使用 Join
我们也可以使用关键词 JOIN 来从两个表中获取数据:
谁定购了产品,并且他们定购了什么?
SELECT Employees.Name, Orders.Product
FROM Employees
INNER JOIN Orders
ON Employees.Employee_ID=Orders.Employee_ID
结果:
NAME PRODUCT
Adams, John Printer
Jim, Care Table
Jim, Care book
LEFT JOIN EXAMPLE:
列出所有的雇员,以及他们的定购产品 - 如果有的话。
SELECT Employees.Name, Orders.ProductFROM Employees
LEFT JOIN Orders
ON Employees.Employee_ID=Orders.Employee_ID
Name | Product |
---|---|
Adams, John | Printer |
Bush, George | |
Jim, Care | table |
Jim, Care | book |
Lily, Lucy | |
列出所有的定单,以及定购者 - 如果有的话。
SELECT Employees.Name, Orders.Product
FROM Employees
RIGHT JOIN Orders
ON Employees.Employee_ID=Orders.Employee_ID
右连接会从第二个表格 (Orders) 那里返回所有的行,即使在第一个表格中没有可匹配的行。
假如 Orders 中的某些行没有在 Employees 可匹配的行,那些行也会被列出。
Name Product
Adams,john printer
Jim, Care table
Jim, Care book
UNION 浅谈:
UNION 命令用于从两个表中选取相关的信息,很类似 JOIN 命令。不过,当使用 UNION 命令时,
所有被选取的列的数据类型应该是相同的。
UNION ALL 命令和 UNION 命令几乎是等效的,不过 UNION ALL 命令会列出所有的值。
语法如下:
SQL Statement 1
UNION
SQL Statement 2