`

[Teach Youself SQL in 10 Minutes] joining tables

    博客分类:
  • db
阅读更多

一、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基础教程英文原版)

    Sams Teach Youself SAP in 24 Hours(sap基础教程英文原版)

    Teach Youself UML in 24 Hours

    10. **UML工具**:学习UML时,你可能会使用各种建模工具,如IBM Rational Rose、Enterprise Architect、Visual Paradigm等,这些工具可以帮助你绘制和管理UML模型。 通过这24小时的学习旅程,你将深入理解UML的各个...

    UML 24小时入门 Teach youself UML in 24 hours 3rd edition

    ### UML 24小时入门知识点详解 #### 一、UML概述 - **定义**:UML(Unified Modeling Language,统一建模语言)是一种标准化的可视化建模语言,广泛应用于软件工程领域,用于描述系统架构、设计模式及业务流程等。...

    Teach.Youself.Perl.5.in.21.Days

    《教你21天学会Perl 5》是一本旨在帮助初学者快速掌握Perl编程语言的经典教程。Perl 5是Perl编程语言的一个主要版本,以其强大的文本处理能力、灵活的语法和广泛的用途而闻名。这本书通过21天的学习计划,将Perl 5的...

    21天学通Java【第六版】源代码

    国外经典Java教材,Sams Teach Youself Java in 21 Days第六版的源代码,本书涉及Java7和Android的知识,帮助读者编写高效的Java程序和Android应用! 作者:Rogers 译者:冯志祥等 出版社:人民邮电出版社

    21天学通c++teacher youself in21days

    《21天学通C++ Teacher Yourself in 21 Days》是一本专为初学者设计的C++编程教程,旨在帮助读者在短短三周内掌握C++基础。这本书以实践为导向,通过逐步引导的方式,让学习者每天都能接触到新的概念和技术,从而在...

    java源码书籍-TeachYourselfJavaScriptIn24_4th:JavaScript入门经典(第4版)(SamsTeachY

    10. **实战项目**:通过实际的小型项目,比如计时器、图片轮播、表单验证等,帮助读者巩固所学知识并提高实践能力。 这本书作为开源资源,意味着读者可以免费获取并学习,同时也可以查看和贡献源码,这对于初学者来...

    Borland C++ 3.0自学培训教程 PDF格式

    这是SAMS Teach youself boorland C++Builder in 21 days一书的源代码,中文名Borland C++Builder3.0自学培训教程(希望公司出版).但此中文版并未配源码,使自学大打折扣.现在我把这套源码放在这,希望有这本书的读者能...

    傅里叶变换库函数FFTW

    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!

    Login Control

    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_

    "JAVA_learn_by_youself.rar" 这个压缩包文件就是专为那些想要踏上Java编程旅程的人准备的一份宝典。它包含了"JAVA 自学之路指南.doc",这份文档将是你学习Java的重要参考资料。 首先,让我们深入理解Java编程的...

    SEOFor2016TheCompleteDoItYourselfSEOGuide.pdf 英文原版

    SEO For 2016 – The Complete Do It Yourself SEO Guide

    Another JQuery Grid Plugin —— MagicGrid 插件

    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 to lock apps

    app lock for you to lock youself apps which you can not see for others

    Android代码-ViewAniamtion

    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 ...

    易语言5.11完美破解

    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 最近对于批处理技术的探讨比较热,也有不少好的批处理程序发布,但是如果没有一定的相关知识恐怕不容易看懂和理解这些批处理文件,也就更谈不上自己动手编写了,古...

    c程序设计 c语言指针与字符串-菜鸟入门 找最长单词(清晰版).png

    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 ...

Global site tag (gtag.js) - Google Analytics