zoukankan      html  css  js  c++  java
  • mysql(一) 关联查询的方式

    mysql做关联查询时,一般使用join....on.....的语法。

    但还有其它两种语法形式,三者的主要区别在于书写形式,其余方面并无太多差异。

    如下三种形式:

    select * from trade join sub_trade on trade.order_id = sub_trade.order_id;
    
    select * from trade join sub_trade using(order_id);
    
    select * from trade, sub_trade where trade.order_id=sub_trade.order_id;

    join....on... 与 join... using()两种形式mysql在执行时都会处理成第三种。

    这两者的区别在于:

    join... on....遇到相同名字的列,检索出来时会要求必须指定来源的表,如下所示:

    select trade.order_id from trade join sub_trade on trade.order_id = sub_trade.order_id;

    join... using()主要用于关联的列名字相同的场景,上述sql可以如下表述:

    select order_id from trade join sub_trade using(order_id);

     其会智能的识别名字相同的列,检索重复的列会只输出一个。

    第三种形式mysql会根据表记录数选择由哪张表作为驱动表,相当于join时,由mysql来自己控制哪张表作为驱动表。

  • 相关阅读:
    1094. Car Pooling
    121. Best Time to Buy and Sell Stock
    58. Length of Last Word
    510. Inorder Successor in BST II
    198. House Robber
    57. Insert Interval
    15. 3Sum java solutions
    79. Word Search java solutions
    80. Remove Duplicates from Sorted Array II java solutions
    34. Search for a Range java solutions
  • 原文地址:https://www.cnblogs.com/asfeixue/p/9121303.html
Copyright © 2011-2022 走看看