作者bobju (宝贝猪)
看板Database
标题Re: [SQL ] 一些小问题
时间Mon Oct 19 11:20:26 2009
※ 引述《hurtooe (怀念的BBS)》之铭言:
: 各位大大~~
: 不好意思~~
: 本人是SQL新手~~
: 有点小问题希望得到解答~~
: 第一是
: Identity (usr_name, f_name, l_name), usr_name是primary key.
: 然後query是Select usr_name, f_name, l_name From identity Group By usr_name;
: 结果是这样有错误!!
: 不知道哪位大大可以帮我解答一下吗~
group by 不是这麽用的. 上面的sql只要把group by(含)後那段删掉即可.
: 第二是另一个问题~~
: 我有两个table: A(x, y), B (y, z), x,y,z是里面的栏位~
: 这里有两个query
: Query 1: select A.x, (select count(*) from B where B.y = A.y) as C from A;
: Query 2: select A.x, count(*) as C from A, B where B.y = A.y group by A.x;
我用mysql跑了一个范例, 以A为主表, B为副表, 结果Query 1跟Query 2不太一样.
Query 1:
这种结构我没用过, 不太熟. 猜测应该类似是以 left join 的方式联结A,B两表.
应该与 Query 1.1 作用一样.
Query 1.1:
select A.x, count(*) as C from A left join B on B.y = A.y group by A.x;
所以 在A中的记录若在B中没有与之关联到的记录, 一样会被捞出来, 而C值为0.
(以上这段描述看不懂的话我再解说)
Query 2:
是用 inner join 的方式连结 A, B两个table, 在这条件下, 凡是
在A中的记录若在B中没有与之关联到的记录, 不会被捞出来.
: 请问这两个query一样吗~~??
: 希望不管是第一或第二的问题~~
: 有想法就说一下吧~~
: 谢谢~~~^^
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 58.115.151.184
※ 编辑: bobju 来自: 58.115.151.184 (10/19 18:20)