zoukankan      html  css  js  c++  java
  • MySQL联结查询

    SQL中,联结主要分为6种类型:

    1.内联结

    将两张表的公共的数据显示出来,即显示两张表的交集:

    SELECT <list> FROM A INNER JOIN B ON A.key = B.key;

    2.左外联结

    将两张表中,只存在于左表中而不存在于右表中的数据筛选出来:

    SELECT <list> FROM A LEFT JOIN B ON A.key = B.key WHERE B.key IS NULL;

    如果不加后面的where子句,会将两张表的共同部分也显示出来。

    3.右外联结

    将两张表中,只存在于右表中而不存在于左表中的数据筛选出来:

    SELECT <list> FROM A RIGHT JOIN B ON A.key = B.key WHERE A.key IS NULL;

    如果不加后面的where子句,会将两张表的共同部分也显示出来。

    4.全联结

    将两张表中所有记录都显示出来,即获取两张表的并集。但是MySQL中并不支持全联结操作,需要人为将左外联结和右外联结合并:

    SELECT <list> FROM A LEFT JOIN B ON A.key = B.key
    UNION ALL
    SELECT <list> FROM A RIGHT JOIN B ON A.key = B.key; 这里union all允许重复数据的存在,如果需要去重则使用union

    5.交叉联结

    又称笛卡尔积联结,返回左表乘以右表的所有条目:

    SELECT <list> FROM A CROSS JOIN B;

    6.自联结

    对同一张表进行联结操作:

    SELECT p1.id, p1.name FROM products AS p1, products AS p2 WHERE p1.vend_id = p2.vend_id AND p2.id = 10;
  • 相关阅读:
    leetcode—Swap Nodes in Pairs
    leetcode--Merge k Sorted Lists
    leetcode—Valid Parentheses
    leetcode—3sum
    编程工具(保持更新)
    QT下调用摄像头(opencv2.4.4)
    qtcreator 与 opencv
    在线公式编辑器
    QT学习(对话框)codeblock版本
    QT-opencv小结
  • 原文地址:https://www.cnblogs.com/00986014w/p/8465083.html
Copyright © 2011-2022 走看看