时间:2021-07-01 10:21:17 帮助过:7人阅读
创建连接非常简单,必须包含所有指定的表,并且说明它们是如何关联起来的。
- <span style="color: #0000ff;">SELECT</span><span style="color: #000000;"><span style="background-color: #ff6600;"> vend_name</span>, <span style="background-color: #99cc00;">prod_name, prod_price
- </span></span><span style="color: #0000ff;">FROM</span><span style="color: #000000;"><span style="background-color: #ff6600;"> vendors</span>, <span style="background-color: #99cc00;">products
- </span></span><span style="color: #0000ff;">WHERE</span> <span style="background-color: #ff6600;">vendors.vend_id</span> <span style="color: #808080;">=</span><span style="color: #000000; background-color: #99cc00;"> products.vend_id
- </span><span style="color: #0000ff;">ORDER</span> <span style="color: #0000ff;">BY</span> <span style="background-color: #ffffff;">vend_name</span>, <span style="background-color: #ffffff;">prod_name</span>;
例子(以下是在不同库里面的两张不同表):
- mysql<span style="color: #808080;">></span> <span style="color: #0000ff;">select</span><span style="color: #000000;"> appKeyInfo.appKey, businessId,appName, infoType, appKeyInfo.remark
- </span><span style="color: #0000ff;">from</span><span style="color: #000000;"> appKeyInfo,crowdRewards.businessInfo
- </span><span style="color: #0000ff;">where</span> appKeyInfo.appKey<span style="color: #808080;">=</span>businessInfo.appKey <span style="color: #808080;">and</span> infoType<span style="color: #808080;">=</span><span style="color: #800000; font-weight: bold;">4</span>
- <span style="color: #0000ff;">order</span> <span style="color: #0000ff;">by</span> appKeyInfo.id <span style="color: #0000ff;">desc</span><span style="color: #000000;">
- limit </span><span style="color: #800000; font-weight: bold;">10</span><span style="color: #000000;">;
- </span><span style="color: #808080;">+</span><span style="color: #008080;">--</span><span style="color: #008080;">----------+------------+---------+----------+-----------------------------------------+</span>
- <span style="color: #808080;">|</span> appKey <span style="color: #808080;">|</span> businessId <span style="color: #808080;">|</span> appName <span style="color: #808080;">|</span> infoType <span style="color: #808080;">|</span> remark <span style="color: #808080;">|</span>
- <span style="color: #808080;">+</span><span style="color: #008080;">--</span><span style="color: #008080;">----------+------------+---------+----------+-----------------------------------------+</span>
- <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">1194641763</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">133</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">4</span> <span style="color: #808080;">|</span> zhiyonginfom <span style="color: #808080;">|</span>
- <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">3217703708</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">132</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">4</span> <span style="color: #808080;">|</span> 测试使用 <span style="color: #808080;">|</span>
- <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">1029667166</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">0</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">4</span> <span style="color: #808080;">|</span> sichuanyinyue <span style="color: #808080;">|</span>
- <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">3927050004</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">130</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">4</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">546546546</span> <span style="color: #808080;">|</span>
- <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">1966753355</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">129</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">4</span> <span style="color: #808080;">|</span> king <span style="color: #808080;">|</span>
- <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">2740425196</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">128</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">4</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">666663321</span> <span style="color: #808080;">|</span>
- <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">2496853641</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">127</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">4</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">6666633</span> <span style="color: #808080;">|</span>
- <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">751377797</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">126</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">4</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">66666</span> <span style="color: #808080;">|</span>
- <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">1031297745</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">125</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">4</span> <span style="color: #808080;">|</span> qqqaaa <span style="color: #808080;">|</span>
- <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">2061454479</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">124</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">4</span> <span style="color: #808080;">|</span> qqq <span style="color: #808080;">|</span>
- <span style="color: #808080;">+</span><span style="color: #008080;">--</span><span style="color: #008080;">----------+------------+---------+----------+-----------------------------------------+</span>
- <span style="color: #800000; font-weight: bold;">10</span> rows <span style="color: #808080;">in</span> <span style="color: #0000ff;">set</span> (<span style="color: #800000; font-weight: bold;">0.08</span> sec)
其中,
- <span style="color: #0000ff;">desc</span> appKeyInfo;
- <span style="color: #808080;">+</span><span style="color: #008080;">--</span><span style="color: #008080;">---------------+---------------------+------+-----+---------+----------------+</span>
- <span style="color: #808080;">|</span> Field <span style="color: #808080;">|</span> Type <span style="color: #808080;">|</span> <span style="color: #0000ff;">Null</span> <span style="color: #808080;">|</span> <span style="color: #0000ff;">Key</span> <span style="color: #808080;">|</span> <span style="color: #0000ff;">Default</span> <span style="color: #808080;">|</span> Extra <span style="color: #808080;">|</span>
- <span style="color: #808080;">+</span><span style="color: #008080;">--</span><span style="color: #008080;">---------------+---------------------+------+-----+---------+----------------+</span>
- <span style="color: #808080;">|</span> id <span style="color: #808080;">|</span> <span style="color: #0000ff;">int</span>(<span style="color: #800000; font-weight: bold;">10</span>) unsigned <span style="color: #808080;">|</span> NO <span style="color: #808080;">|</span> PRI <span style="color: #808080;">|</span> <span style="color: #0000ff;">NULL</span> <span style="color: #808080;">|</span> auto_increment <span style="color: #808080;">|</span>
- <span style="color: #808080;">|</span> appKey <span style="color: #808080;">|</span> <span style="color: #0000ff;">int</span>(<span style="color: #800000; font-weight: bold;">10</span>) unsigned <span style="color: #808080;">|</span> NO <span style="color: #808080;">|</span> UNI <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">0</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span>
- <span style="color: #808080;">|</span> appName <span style="color: #808080;">|</span> <span style="color: #0000ff;">varchar</span>(<span style="color: #800000; font-weight: bold;">32</span>) <span style="color: #808080;">|</span> NO <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span>
- <span style="color: #808080;">|</span> remark <span style="color: #808080;">|</span> <span style="color: #0000ff;">varchar</span>(<span style="color: #800000; font-weight: bold;">32</span>) <span style="color: #808080;">|</span> NO <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span>
- <span style="color: #808080;">|</span> infoType <span style="color: #808080;">|</span> <span style="color: #0000ff;">tinyint</span>(<span style="color: #800000; font-weight: bold;">4</span>) unsigned <span style="color: #808080;">|</span> NO <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">0</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span>
- <span style="color: #808080;">|</span> appLogo <span style="color: #808080;">|</span> <span style="color: #0000ff;">varchar</span>(<span style="color: #800000; font-weight: bold;">128</span>) <span style="color: #808080;">|</span> NO <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span>
- <span style="color: #808080;">+</span><span style="color: #008080;">--</span><span style="color: #008080;">---------------+---------------------+------+-----+---------+----------------+</span>
- 6 rows <span style="color: #808080;">in</span> <span style="color: #0000ff;">set</span> (<span style="color: #800000; font-weight: bold;">0.06</span> sec)
- <span style="color: #0000ff;">desc</span> businessDemo;
- <span style="color: #808080;">+</span><span style="color: #008080;">--</span><span style="color: #008080;">-----------------+------------------------+------+-----+---------+----------------+</span>
- <span style="color: #808080;">|</span> Field <span style="color: #808080;">|</span> Type <span style="color: #808080;">|</span> <span style="color: #0000ff;">Null</span> <span style="color: #808080;">|</span> <span style="color: #0000ff;">Key</span> <span style="color: #808080;">|</span> <span style="color: #0000ff;">Default</span> <span style="color: #808080;">|</span> Extra <span style="color: #808080;">|</span>
- <span style="color: #808080;">+</span><span style="color: #008080;">--</span><span style="color: #008080;">-----------------+------------------------+------+-----+---------+----------------+</span>
- <span style="color: #808080;">|</span> id <span style="color: #808080;">|</span> <span style="color: #0000ff;">int</span>(<span style="color: #800000; font-weight: bold;">10</span>) unsigned <span style="color: #808080;">|</span> NO <span style="color: #808080;">|</span> PRI <span style="color: #808080;">|</span> <span style="color: #0000ff;">NULL</span> <span style="color: #808080;">|</span> auto_increment <span style="color: #808080;">|</span>
- <span style="color: #808080;">|</span> name <span style="color: #808080;">|</span> <span style="color: #0000ff;">varchar</span>(<span style="color: #800000; font-weight: bold;">64</span>) <span style="color: #808080;">|</span> NO <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span>
- <span style="color: #808080;">|</span> appKey <span style="color: #808080;">|</span> <span style="color: #0000ff;">int</span>(<span style="color: #800000; font-weight: bold;">10</span>) unsigned <span style="color: #808080;">|</span> NO <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">0</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span>
- <span style="color: #808080;">|</span> businessID <span style="color: #808080;">|</span> <span style="color: #0000ff;">int</span>(<span style="color: #800000; font-weight: bold;">10</span>) unsigned <span style="color: #808080;">|</span> NO <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">0</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span>
- <span style="color: #808080;">|</span> remark <span style="color: #808080;">|</span> <span style="color: #0000ff;">varchar</span>(<span style="color: #800000; font-weight: bold;">128</span>) <span style="color: #808080;">|</span> NO <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span> <span style="color: #808080;">|</span>
- <span style="color: #808080;">+</span><span style="color: #008080;">--</span><span style="color: #008080;">-----------------+------------------------+------+-----+---------+----------------+</span>
- 5 rows <span style="color: #808080;">in</span> <span style="color: #0000ff;">set</span> (<span style="color: #800000; font-weight: bold;">0.04</span> sec)
使用WHERE来设置连接关系看起来有些奇怪,不过事实上有一个很好的理由支持这种做法。记住,当表通过SELECT语句连接起来时,关系的组织是动态。...事实上,你将第一个表中的每一行同第二个表中的每一行进行对比,WHERE事实上就是一个过滤器,使其仅仅包含匹配制定过滤器条件(连接条件)的行。没有WHERE子句,第一个表的每一行将匹配第二个表中的每一行,无论它们是否符合逻辑。
笛卡尔乘积(Cartesian product)没有使用连接条件的表关系的返回结果。返回的行数时第一个表的行数乘以第二个表的行数。
不要忘记WHERE子句,确保所有的连接都包含WHERE子句,否则MariaDB将返回超出你所需的数据。类似的,确保正确使用WHERE子句,错误的过滤条件将会导致MariaDB返回错误数据。
交叉连接(Cross Joins)这种就是笛卡尔乘积的连接类型。
- <span style="color: #0000ff;">SELECT</span><span style="color: #000000;"> vend_name, prod_name, prod_price
- </span><span style="color: #0000ff;">FROM</span><span style="color: #000000;"> vendors, products
- </span><span style="color: #0000ff;">ORDER</span> <span style="color: #0000ff;">BY</span> vend_name, prod_name;
内连接
- <span style="color: #0000ff;">SELECT</span><span style="color: #000000;"> vend_name, prod_name, prod_price
- </span><span style="color: #0000ff;">FROM</span> vendors <span style="color: #0000ff;">INNER</span> <span style="color: #808080;">JOIN</span><span style="color: #000000;"> products
- </span><span style="color: #0000ff;">ON</span> vendors.vend_id <span style="color: #808080;">=</span> products.vend_id;
另外,跨库的连接
- <span style="color: #0000ff;">select</span> dataBaseName1.appKey,dataBaseName2.tableName2.appKey <br><span style="color: #0000ff;">from</span> tableName1 <span style="color: #0000ff;">inner</span> <span style="color: #808080;">join </span>dataBaseName2.tableName2<br><span style="color: #0000ff;">on</span> appKeyInfo.appKey<span style="color: #808080;">=</span>dataBaseName2.tableName2.appKey;
等值连接(equiljoin)一个基于测试两表相等的连接。这种连接也被称作内连接。
这里的两个表关系被指定为INNER JOIN.当使用这个语法的时候,连接条件使用on来代替where子句,传递给on的条件和传递给where子句的条件相同。
sql没有明确限制select语句中表连接的数量。
创建连接的基本规则仍然相同,首先列出所有的表,然后定义表的关系。
- <span style="color: #0000ff;">SELECT</span><span style="color: #000000;"> prod_name, vend_name, prod_price, quantity
- </span><span style="color: #0000ff;">FROM</span><span style="color: #000000;"> orderitems, products, vendors
- </span><span style="color: #0000ff;">WHERE</span> products.vend_id <span style="color: #808080;">=</span><span style="color: #000000;"> vendors.vend_id
- </span><span style="color: #808080;">AND</span> orderitems.prod_id <span style="color: #808080;">=</span><span style="color: #000000;"> products.prod_id
- </span><span style="color: #808080;">AND</span> order_num <span style="color: #808080;">=</span> <span style="color: #800000; font-weight: bold;">20005</span>;
MariaDB SQL INNER JOIN
标签: