Tìm thủ thuật nhanh hơn với chức năng tìm trong Blog

29/12/2009

So sánh - tổng hợp 2 table với Union

Hỏi:Mình hiện nay có 2 table A và table B :
Giờ mình muốn lọc bằng lệnh SQL hoặc query :
điều kiện
1_những record nào trùng file mahang và tenhang trùng giữa 2 table A và B .
2_Lọc ra những record không trùng giữa 2 table A và B .
3 -Làm thế nào để Hợp nhất hai table A và B: lấy tất cả những record trùng và không trùng của 2 table (các record trùng nhau sẽ thành 1 record)
Đáp: Ví dụ bạn có 2 table
tableA có các mahang: 001, 002, 003.
TableB có các mahang: 001, 004, 005.

 1_những record nào trùng file mahang và tenhang trùng giữa 2 table A và B .
SELECT ArticleNo FROM TableA WHERE ArticleNo In (select ArticleNo from TableB)
Union
SELECT ArticleNo FROM TableB WHERE ArticleNo In (select ArticleNo from TableA)
kết quả ví dụ tabletonghop có mã: 001
2_Lọc ra những record không trùng giữa 2 table A và B .
[CODE]SELECT ArticleNo FROM TableA WHERE ArticleNo Not In (select ArticleNo from TableB)
Union
SELECT ArticleNo FROM TableB WHERE ArticleNo Not In (select ArticleNo from TableA);
 kết quả ví dụ: 002,003,004,005
3/ -Làm thế nào để Hợp nhất hai table A và B: lấy tất cả những record trùng và không trùng của 2 table (các record trùng nhau sẽ thành 1 record)
SELECT ArticleNo FROM TableA
Union
SELECT ArticleNo FROM TableB ;
kết quả ví dụ: 001,002,003,004,005
4/ Làm thế nào lấy tổng hợp tất cả các record không quan tâm chúng có trùng mã hay không?
SELECT ArticleNo FROM TableA
Union All
SELECT ArticleNo FROM TableB ;
 kết quả ví dụ: 001,001,002,003,004,005

3 nhận xét:

  1. 4/ của Noname: thiếu ALL sau Union

    Trả lờiXóa
  2. Hihi! tks HQQ! Năm mới vui vẻ!

    Trả lờiXóa
  3. cho mình hỏi mấy câu lệnh này có dùng tìm giao của 1 query với 1 table được ko? sao mình làm nó báo lỗi

    Trả lờiXóa

» Hãy để lại tên, email của bạn khi bạn post comment, để mình có thể dễ dàng trả lời comment của bạn khi cần.
» Có thể sử dụng các thẻ < b>,< i>,< a>. Và các icon thông dụng trên YM