Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从Table1、Table2中选择

从Table1、Table2中选择
EN

Stack Overflow用户
提问于 2016-10-04 18:07:58
回答 3查看 49.6K关注 0票数 15

我找到了下面的问题,如果有人能帮我解释一下这是什么意思,我将不胜感激。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select * from table1, table2
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-04 18:14:40

这称为CROSS JOIN,但在FROM子句中使用带有,的旧语法。我的建议是不要使用旧的语法,在这里坚持使用JOIN

它产生一个笛卡尔乘积,因此结果集中的行数等于table1中的行数乘以table2中的行数(假设WHERE子句中没有约束)。它有效地将来自table1的每一行与来自table2的一行配对。

下面的查询是等效的,但它执行显式的JOIN操作,它将数据检索的约束逻辑(通常放在WHERE子句中)与连接存储在不同表中的相关数据的逻辑(放在FROM子句中)分开:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT *
FROM table1
CROSS JOIN table2

考虑一个例子,其中table1有8行,table2有5行。在输出中,您将获得40行(8行*5行),因为它将来自两个源(表)的所有行配对。

票数 15
EN

Stack Overflow用户

发布于 2016-10-04 18:13:31

您将得到table1中的所有行乘以table2中的所有行数,并将根据两个表的列进行显示。正如@sgeddes指出的,创建一个笛卡尔产品。

票数 1
EN

Stack Overflow用户

发布于 2017-11-03 07:32:45

具有4条记录的Table1 (Col1,Col2)

具有3个记录的Table2 (Col11、Col22、Col33)

当您使用下面给出的查询时,它将生成NxM行数(笛卡尔连接)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select * from table1, table2 

下面将给出两个表的结果和列序列,其中4 x 3= 12个记录。Col1、Col2、Col11、Col22、Col33

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39859022

复制
相关文章
MySQL中 insert into select和create table的区别 已经复制表的方法
(1)要求目标表Table2必须存在,并且字段field,field2…也必须存在
HaC
2020/12/30
3K0
SQLServer 学习笔记之超详细基础SQL语句 Part 1
name = ’数据库文件逻辑名’(在创建数据库后执行的T-SQL语句中引用文件的名称),
授客
2019/09/11
6480
浅谈SQL语句的执行过程
写在前面的话:有时不理解SQL语句各个部分执行顺序,导致理解上出现偏差,或者是书写SQL语句时随心所欲,所以有必要了解一下sql语句的执行顺序。可以有时间自己写一个简单的数据库,理解会更加深入。下面就写写我的一些理解,以SQL SERVER2008为例,进行说明。
哲洛不闹
2018/09/19
1.4K0
浅谈SQL语句的执行过程
MySQL数据库,深入了解连接查询及原理(三)
mysql> select * from test1 t1,test2 t2 where t1.a = t2.b;
用户1289394
2021/11/16
4440
INSERT INTO SELECT语句与SELECT INTO FROM语句区别
语句形式为:Insert into Table2(field1,field2,…) select value1,value2,… from Table1
全栈程序员站长
2022/09/14
1.7K0
SQL 语法面试备忘录,建议收藏!
在这个越来越卷的行当——数据科学,其找工作面试必然难以驾驭。而它的多学科领域性质决定了你需要翻阅大量材料才能感觉准备充分,而这很可能会让你不知所措,无从下手。
数据STUDIO
2021/10/27
1.2K0
SQL的各种连接(cross join、inner join、full join)的用法理解
如果不带WHERE条件子句,它将会返回被连接的两个表的笛卡尔积,返回结果的行数等于两个表行数的乘积;
全栈程序员站长
2022/07/07
1.9K0
玩转Mysql系列 - 第11篇:深入了解连接查询及原理
当我们查询的数据来源于多张表的时候,我们需要用到连接查询,连接查询使用率非常高,希望大家都务必掌握。
路人甲Java
2019/09/20
1.2K0
SQL学习笔记四(补充-1-1)之MySQL单表查询补充部分:SQL逻辑查询语句执行顺序
在这些SQL语句的执行过程中,都会产生一个虚拟表,用来保存SQL语句的执行结果(这是重点),我现在就来跟踪这个虚拟表的变化,得到最终的查询结果的过程,来分析整个SQL逻辑查询的执行顺序和过程。
Jetpropelledsnake21
2019/02/15
7560
Redis中Rehash浅析
HashTable:Redis中有一个「全局哈希表」,该哈希表中保存所有的键值对。对于Hash表的查找操作时间复杂度为O(1)
码农编程进阶笔记
2023/03/23
6370
Redis中Rehash浅析
SQL逻辑查询语句执行顺序
一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_list> HAVING <having_condition> ORDER BY <order_by_condition> LIMIT <limit_number> 二 SELECT语句关键
用户1214487
2018/01/24
4.1K0
Oracle创建表及管理表
创建表包括三个要素,表名,列名,数据类型。每个表都有对应不同的列,每个列都有唯一对应的数据类型。常用数据类型简介:
星哥玩云
2022/08/16
1.2K0
MySQL 8.0.23新特性 - 不可见列
在MySQL 8.0.23之前,表中所有的列都是可见的(如果您有权限的话)。现在可以指定一个不可见的列,它将对查询隐藏。如果显式引用,它可以被查到。
老叶茶馆
2021/02/23
1.4K0
MySQL 8.0.23新特性 - 不可见列
MySQL的逻辑查询语句的执行顺序
在这些SQL语句的执行过程中,都会产生一个虚拟表,用来保存SQL语句的执行结果(这是重点),我现在就来跟踪这个虚拟表的变化,得到最终的查询结果的过程,来分析整个SQL逻辑查询的执行顺序和过程。
changxin7
2022/05/06
3.8K0
sql LEFT JOIN RIGHT JOIN(左连接)(mysql)
在这里,LEFT JOIN(内连接,或等值连接):取得左表(table1)完全记录,即是右表(table2)并无对应匹配记录。 例如,如果table2中的age1的值有一个值是11,table1的值中age1的值也有11,那么就查询出来;但是table2中如果有值2134,table1中的age1并不存在2134,那么这个值就不会查询出来: 再假设,如果table1中有age1的值2,3,4但是table2中没有一个age1的值是2,3,4那么table1中就会显示出来2,3,4;换句话说,使用left join,最开始的表,左表会全部显示出来,右表则会显示左表中有的值。
1_bit
2021/01/14
1.9K0
sql LEFT JOIN RIGHT JOIN(左连接)(mysql)
SQL命令 UPDATE(二)
数据以逻辑模式格式存储。 例如,日期存储为整数天数,时间存储为从午夜开始的秒数,%List存储为编码字符串。 大多数其他数据,如字符串和数字,不需要转换; 无论当前模式如何,它们都以相同的格式输入、更新和存储。
用户7741497
2022/05/07
1.8K0
初识密码学
密码学初识 首先要区分的是编码法和加密法,虽然两者都是用来加密信息的方法,但是他们是以完全不同的方式进行的。编码法就是用字、短语或数字来代替明文。例如,“bomb”可能在消息中以数字“1508”的形式出现,从码文还原明文不存在算法或秘钥。生成码文或还原码文需要一本编码簿,它列出了所有数字(或代替字符)和与之相应的明文字、短语或字母。加密法则是使用算法或秘钥来加密信息。 一 替换加密法 先来介绍一下最简单的替换加密法:凯撒加密法 凯撒使用的秘钥是移动3位。首先按顺序写下26个字母:ABCDEFGHIJKLM
安恒网络空间安全讲武堂
2018/02/06
8810
初识密码学
(数据科学学习手册28)SQL server 2012中的查询语句汇总
  数据库管理系统(DBMS)最重要的功能就是提供数据查询,即用户根据实际需求对数据进行筛选,并以特定形式进行显示。在Microsoft SQL Serve 2012 中,可以使用通用的SELECT语句进行查询操作,该语句具有非常灵活的使用方式和丰富的功能,即可以完成简单的单表查询,也可以完成复杂的连接查询和嵌套查询,本文就将对常用的大多数SQL中的数据查询语句进行总结和演示;
Feffery
2018/04/21
6.2K2
(数据科学学习手册28)SQL server 2012中的查询语句汇总
select into from 和 insert into select 的用法和区别
select into from 和 insert into select都是用来复制表,两者的主要区别为: select into from 要求目标表不存在,因为在插入时会自动创建。insert into select from 要求目标表存在 下面分别介绍两者语法 一、INSERT INTO SELECT语句 1、语句形式为:
全栈程序员站长
2022/09/14
5.1K0
mysql数据库之基础SQL语句/语法
SQL是现在进入互联网工作人们的必须技能之一,下面分享自己觉得很nice的SQL基本语句,从网上找了,觉得很不错,就分享给大家! 简要介绍基础语句:  1、说明:创建数据库  Create DATABASE database-name  2、说明:删除数据库  drop database dbname  3、说明:备份sql server --- 创建 备份数据的 device  USE master  EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'  --- 开始 备份  BACKUP DATABASE pubs TO testBack  4、说明:创建新表  create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)  根据已有的表创建新表:  A:create table tab_new like tab_old (使用旧表创建新表)  B:create table tab_new as select col1,col2… from tab_old definition only  5、说明:删除新表 drop table tabname  6、说明:增加一个列  Alter table tabname add column col type  注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型  的长度。  7、说明:添加主键: Alter table tabname add primary key(col)  说明:删除主键: Alter table tabname drop primary key(col)  8、说明:创建索引:create [unique] index idxname on tabname(col….)  删除索引:drop index idxname  注:索引是不可更改的,想更改必须删除重新建。  9、说明:创建视图:create view viewname as select statement  删除视图:drop view viewname  10、说明:几个简单的基本的sql语句  选择:select * from table1 where 范围  插入:insert into table1(field1,field2) values(value1,value2)  删除:delete from table1 where 范围  更新:update table1 set field1=value1 where 范围  查找:select * from table1 where field1 like '%value1%' ---like的语法很精妙,查资料!  排序:select * from table1 order by field1,field2 [desc]  总数:select count as totalcount from table1  求和:select sum(field1) as sumvalue from table1  平均:select avg(field1) as avgvalue from table1  最大:select max(field1) as maxvalue from table1  最小:select min(field1) as minvalue from table1  11、说明:几个高级查询运算词  A: UNION 运算符  UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生  出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派  生表的每一行不是来自 TABLE1 就是来自 TABLE2。  B: EXCEPT 运算符  EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个  结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。  C: INTERSECT 运算符  INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果  表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。  注:使用运算词的几个查询结果行必须是一致的。  12、说明:使用外连接  A、left outer join:  左外连接(左连接):结果集几包括连接表的匹配行,也包括
马三小伙儿
2018/09/12
1.5K0

相似问题

从选择的table1插入到table2中

10

选择table1和table2计数

10

MySql从table1 if列中选择table2 =1

33

插入到table2中,从table1选择,然后更新选择/插入的table1行

37

“从table1,table2中选择”意味着什么?

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文