一、inner joins
A join based on the testing of equality between two tables is called equijoin. This kind of join is also called an inner join.
SELECT vend_name, prod_name, prod_price
FROM Vendors, Products
WHERE Vendors.vend_id = Products.vend_id;
等价于:
SELECT vend_name, prod_name, prod_price
FROM Vendors INNER JOIN Products
ON Vendors.vend_id = Products.vend_id;
Per the ANSI SQL specification, use of the INNER JOIN syntax is preferable.
二、self joins
SELECT cust_id, cust_name, cust_contact
FROM Customers
WHERE cust_name = (SELECT cust_name
FROM Customers
WHERE cust_contact = 'Jim Jones');
等价于:
SELECT c1.cust_id, c1.cust_name, c1.cust_contact
FROM Customers AS c1, Customers AS c2
WHERE c1.cust_name = c2.cust_name
AND c2.cust_contact = 'Jim Jones';
【No AS in Oracle Oracle users, remember to drop the AS.】
三、Natural Joins
A natural join is a join in which you select only columns that are unique. This is typically done using a wildcard (SELECT *) for one table and explicit subsets of the columns for all other tables. The following is an example:
SELECT C.*, O.order_num, O.order_date, OI.prod_id, OI.quantity, OI.item_price
FROM Customers AS C, Orders AS O, OrderItems AS OI
WHERE C.cust_id = O.cust_id
AND OI.order_num = O.order_num
AND prod_id = 'RGAN01';
The truth is, every inner join you have created thus far is actually a natural join, and you will probably never even need an inner join that is not a natural join.
四、Outer Joins
The join includes table rows that have no associated rows in the related table. This type of join is called an outer join. Such as:
1) List all products with order quantities, including products not ordered by anyone;
2)Calculate average sale sizes, taking into account customers who have not yet placed an order
When using OUTER JOIN syntax you must use the RIGHT or LEFT keywords to specify the table from which to include all rows (RIGHT for the one on the right of OUTER JOIN, and LEFT for the one on the left).
NOTE:It is important to note that the syntax used to create an outer join can vary slightly among different SQL implementations. The various forms of syntax described in the following section cover most implementations, but refer to your DBMS documentation to verify its syntax before proceeding.
1.LEFT OUTER JOIN
SELECT Customers.cust_id, Orders.order_num
FROM Customers LEFT OUTER JOIN Orders
ON Customers.cust_id = Orders.cust_id;
2.RIGHT OUTER JOIN
SELECT Customers.cust_id, Orders.order_num
FROM Customers RIGHT OUTER JOIN Orders
ON Orders.cust_id = Customers.cust_id;
3. FULL OUTER JOIN
SELECT Customers.cust_id, Orders.order_num
FROM Orders FULL OUTER JOIN Customers
ON Orders.cust_id = Customers.cust_id;
NOTE:FULL OUTER JOIN Support The FULL OUTER JOIN syntax is not supported by Access, MySQL, SQL Server, or Sybase.
分享到:
相关推荐
Sams Teach Youself SAP in 24 Hours(sap基础教程英文原版)
10. **UML工具**:学习UML时,你可能会使用各种建模工具,如IBM Rational Rose、Enterprise Architect、Visual Paradigm等,这些工具可以帮助你绘制和管理UML模型。 通过这24小时的学习旅程,你将深入理解UML的各个...
### UML 24小时入门知识点详解 #### 一、UML概述 - **定义**:UML(Unified Modeling Language,统一建模语言)是一种标准化的可视化建模语言,广泛应用于软件工程领域,用于描述系统架构、设计模式及业务流程等。...
《教你21天学会Perl 5》是一本旨在帮助初学者快速掌握Perl编程语言的经典教程。Perl 5是Perl编程语言的一个主要版本,以其强大的文本处理能力、灵活的语法和广泛的用途而闻名。这本书通过21天的学习计划,将Perl 5的...
国外经典Java教材,Sams Teach Youself Java in 21 Days第六版的源代码,本书涉及Java7和Android的知识,帮助读者编写高效的Java程序和Android应用! 作者:Rogers 译者:冯志祥等 出版社:人民邮电出版社
《21天学通C++ Teacher Yourself in 21 Days》是一本专为初学者设计的C++编程教程,旨在帮助读者在短短三周内掌握C++基础。这本书以实践为导向,通过逐步引导的方式,让学习者每天都能接触到新的概念和技术,从而在...
10. **实战项目**:通过实际的小型项目,比如计时器、图片轮播、表单验证等,帮助读者巩固所学知识并提高实践能力。 这本书作为开源资源,意味着读者可以免费获取并学习,同时也可以查看和贡献源码,这对于初学者来...
这是SAMS Teach youself boorland C++Builder in 21 days一书的源代码,中文名Borland C++Builder3.0自学培训教程(希望公司出版).但此中文版并未配源码,使自学大打折扣.现在我把这套源码放在这,希望有这本书的读者能...
Here are FFTW lib and dll files compiled by GCC4.5 and VC2010 in Win7. But I suggest you compiling it by youself in you computer, or there will be some unpredictable errors!
10. Now you are ready to use the control in your Web form. Just drag the LoginControl icon in the ToolBox pane and drop it to the Web form. The control should appear in the form with all its child ...
"JAVA_learn_by_youself.rar" 这个压缩包文件就是专为那些想要踏上Java编程旅程的人准备的一份宝典。它包含了"JAVA 自学之路指南.doc",这份文档将是你学习Java的重要参考资料。 首先,让我们深入理解Java编程的...
SEO For 2016 – The Complete Do It Yourself SEO Guide
4.row definition by youself (Render) 5.succinct code (size of origin code is under 10k, after compress it is under 3k), update easily. 6.easy study and use 7.easy custom css style Just a little ...
app lock for you to lock youself apps which you can not see for others
This is a library of the AnimatorSet,it has three move path and many animation,you can make a easy animation of view by youself. animation of View i did not finish it at this time Demo MovePath ...
Extract to any folder, and you can use it, make youself happy:) THIS IS A THIRD-PARTY SOFTWARE. IT IS PROVIDED "AS IS", WITHOUT ANY WARRANTY. If it does not meet your needs, please install the full ...
简明批处理教程22009年10月20日 星期二 下午 05:35 最近对于批处理技术的探讨比较热,也有不少好的批处理程序发布,但是如果没有一定的相关知识恐怕不容易看懂和理解这些批处理文件,也就更谈不上自己动手编写了,古...
char a[]=" lo v ely a dm inistration d youself my"; int p,q; int i; p=0,q=0; strPositon(a,&p,&q); printf("the most long word is :"); for(i=p;i;i++) printf("%c",a[i]); return 0; } void ...