[SQL ] JOIN如何不抓出重复的资料

楼主: Talenius (Harmonic Inspirations)   2017-01-07 13:18:14
(针对 SQL 语言的问题,用这个标题。请用 Ctrl+Y 砍掉这行)
数据库名称:Microsoft SQL Server
数据库版本:2014
内容/问题描述:
如表A       表B
ID   Status    ID  Status
张三 1      张三 1
李四 2      李四 1      
王五 2      王五 2
SELECT
(SELECT 表A.ID
From 表A JOIN 表B ON 表A.ID = 表B.ID
WHERE 表A.Status = 2 AND 表B.Status = 1) AS 2
(因为需要很多字段显示状态(如2)但问题都一样,所以以下省略)
产生结果:
李四
李四
请问:
1. 为何李四出现二次?
2. 如何只让李四出现一次?
3. 若是SELECT COUNT(表A.ID),如何显示1?(即只算李四一个)
谢谢
作者: likesp999 (大肠杆菌)   2017-01-07 18:15:00
照你的打是只有李四
楼主: Talenius (Harmonic Inspirations)   2017-01-07 19:01:00
会出现二次李四,但我只要一次
作者: likesp999 (大肠杆菌)   2017-01-07 19:35:00
我照你的规格跟语法来测试,的确只有李四一笔,还是你本身资料有重复?妳可以加一下inner 不过结果因该一样,但你的语法没问体,你可以自己就用这个范例打看看,就是你想要的结果!!
楼主: Talenius (Harmonic Inspirations)   2017-01-07 21:15:00
改成INNER JOIN,仍然是一样的错误
作者: tedcat (动静:MSN暱称为主)   2017-01-08 15:45:00
sql没问题,肯定是你资料面有漏http://sqlfiddle.com/#!9/827a43/4/0要码表A李四符合条件的 有两笔 或是表B有两笔或是试着join字段那边 加上定序让他相同(collate)
楼主: Talenius (Harmonic Inspirations)   2017-01-09 07:20:00
感谢L大与T大的帮忙,重新加载资料后汇出资料就对了我不确定为何之前同个csv档会汇入二次感谢各位的帮忙
作者: adrianshum (Alien)   2017-02-16 09:25:00
好歹设个primary key 或unique constraint 嘛

Links booklink

Contact Us: admin [ a t ] ucptt.com