01/10/2018, 17:46
Oracle selfjoin
em có chút thắc mắc ntn anh em chỉ giáo giùm.
Có bảng test chỉ có 1 côt là team. bảng chỉ có 4 bản ghi là a b c d
Yêu cầu là truy vấn kiểu gì để cho ra kết quả ntn ạ(giống như chia các đội bóng trong vòng bảng sao cho mỗi đội gặp nhau đúng 1 lần thôi).
team 1 | team2 |
---|---|
a | b |
a | c |
a | d |
b | c |
b | d |
c | d |
Bài liên quan
search cross join (Cartesian) xem thế nào.
em cũng làm thế nhưng sư phụ em kêu phải làm sao ra đúng thứ tự như thế cơ
à. chỗ này em hơi thắc mắc 1 chút đó là so sánh giữa t1.team < t2.team thì là so sánh dựa trên mã ascii hay cái gì hả anh
Chỉ dùng SQL thuần thì câu trên thiếu group by nhỉ.
Sao không đúng nhỉ?
Mình mới thử chạy ra kết quả mà.
Vô trang này viết SQL nè: https://www.w3schools.com/sql/trysql.asp?filename=trysql_op_in
Nhập từng lệnh sau vào:
sorry. em ghi ẩu. thực ra đề bài của em không phải là abcd theo thứ tự sẵn như vậy mà là những cái tên
team
ind
pak
ban
sri
select lam sao de ra được như sau
teama teamb
ind pak
ind ban
ind sri
pak ban
pak sri
ban sri
Dùng
group by
thử xemSQL không có ấn định thứ tự của bản ghi đâu
Thầy chơi không cho thứ tự các giá trị của
team
thì mình chơi ăn gian vậy.Lợi dụng internal implementation để ra kết quả.
SQL trên chỉ đúng nếu insert theo đúng thứ tự: ind < pak < ban < sri
thanks anh. em đăng khá nhiều bài mà cũng nhiều câu hỏi củ chuối nên ít người giúp không nhầm thì anh support em khá nhiều lần rồi. hehe.