SELECT cust_id, cust_name, cus
sqlserver吧
全部回复
仅看楼主
level 4
Jason_CH_Zhou 楼主
SELECT cust_id, cust_name, cust_contact
FROM Customers
WHERE cust_name = (SELECT cust_name
FROM Customers
WHERE cust_contact = 'Jim Jones');
为什么需要套用,和下面句子有什么不一样:
SELECT cust_id, cust_name, cust_contact
FROM Customers
WHERE cust_contact = 'Jim Jones'
2019年05月29日 23点05分 1
level 3
当【cust_name】列和【cust_contact】列的数据都是唯一的不重复的时候,这俩语句没什么区别
可以重复的话
第一句:与【cust_contact=Jim Jones】具有相同【cust_name】的都会被查出来
第二句:【cust_contact 】列等于【Jim Jones】的都会被查出来
建议建个表试一下,有助于理解
2019年05月30日 01点05分 2
嗯,我就想写出来,然后有人一起讨论,会理解得很透。谢谢
2019年05月30日 14点05分
level 4
Jason_CH_Zhou 楼主
没有老师教真难,很简单的句子都理解不了,谁可以帮帮忙,拜谢
既然c1和c2其实是同一个表,那这个WHERE c1.cust_name = c2.cust_name不是没有任何意义?:
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';
2019年06月02日 23点06分 3
level 3
即使确实是同一张表,但是sqlserver没有那么智能的。
这是自连接,连接条件是必须的,否则会产生笛卡尔积
其次,像下图这种的自连接,连接条件就不是简单的【同一个表的相同字段相等】了,你可以尝试做一下
2019年06月03日 00点06分 4
谢谢兄弟,了解了迪卡儿积,[玫瑰]
2019年06月03日 23点06分
Select c1.* From 信息表 as c1, 信息表 as c2 Where c1.gongzi >c2.gongzi and c1.shangjiID=c2.ID
2019年06月06日 00点06分
不懂自联结对不对,如果是嵌套,就是先把上级找出来,工资对比。
2019年06月06日 00点06分
level 1
这个例子是sql必知必会第四版中文译版P114的例子,上者是找出与Jim Jones同一公司下的所有员工,而下者只输出Jim Jones一条数据,书中举例为了引出自联结self-join
2020年02月18日 07点02分 6
1