請問幾個SQL語法問題,使用該「語法一」即可找到大於1的資料,假設找出2筆資料
語法一:select BECM from AA group by BECM having count(BECM) > 1
但我找完資料後,我又要下以下指令,才可以知道BECM=6的table詳細內容為何~
select * from AA where BECM = 6
我其實是希望在AA該欄位內,下查詢即可以知道BECM該欄位重覆的資料直接顯示出來讓我知道
以我目前的理解,似乎只能分斷試去下指令瞭解,請問各位前輩有更好的方法嗎?
不知這樣是否有將問題描述清楚,若無,請再跟我說,我會儘快補充,謝謝!
CREATE TABLE AA
(`NAME` varchar(9), `BECM` int)
;
INSERT INTO AA
(`NAME`, `BECM`)
VALUES
('Ada', 6),
('Lisa', 6),
('Jenny', 6),
('Jack', 3),
('Joan', 2),
('Jeniffer', 1),
('Charlotte', 8),
('Daisy', 8)
;
SELECT * FROM AA
WHERE BECM IN
(SELECT BECM FROM AA
GROUP BY BECM
HAVING COUNT(*) > 1)
select * from AA where BECM in (select BECM from AA group by BECM having count(BECM) > 1)
ORDER BY BECM
上面的寫法也可以,也可以用內部聯結
select *
from aa,
(select form aa group by BECM having count(BECM)>1)aaCount
where aa.BECM = aaCount.BECM and
........... <==你需要的判斷式
如果count後的值可以判斷只有唯一的話,也可以直接用MAX or MIN等count函數
ex..
select max(name),max(BECM),count(BECM)....
form aa
group by BECM
having count(BECM)>1