Có cách nào để sử dụng giao cắt mà không chọn các giá trị riêng biệt không? Một cái gì đó như INTERSECT ALL
.Giao lộ trong SQL Server
Ví dụ, hãy xem xét bảng A và B
A --> 1, 1, 1, 2, 3, 4
B --> 1, 1, 2
sẽ dẫn đến
Result --> 1, 1, 2
EDIT
Tôi nghĩ link điều này giải thích rõ những gì tôi muốn. Điều này other link cũng intersting để hiểu được câu hỏi. Hoặc this other link giải thích sự kiện tốt hơn.
EDIT 2
Giả sử các bảng:
Bảng A
╔════════╦════╦═══╦════╦════╗
║ A ║ B ║ C ║ D ║ E ║
╠════════╬════╬═══╬════╬════╣
║ Car ║ 10 ║ 1 ║ OK ║ -1 ║
║ Car ║ 10 ║ 1 ║ OK ║ -1 ║
║ Car ║ 10 ║ 1 ║ OK ║ -1 ║
║ House ║ 10 ║ 1 ║ NO ║ -5 ║
║ Monkey ║ 15 ║ 1 ║ OK ║ -1 ║
║ Dog ║ 3 ║ 1 ║ OK ║ -1 ║
╚════════╩════╩═══╩════╩════╝
Bảng B
╔═════╦════╦═══╦════╦════╗
║ A ║ B ║ C ║ D ║ E ║
╠═════╬════╬═══╬════╬════╣
║ Car ║ 10 ║ 1 ║ OK ║ -1 ║
║ Car ║ 10 ║ 1 ║ OK ║ -1 ║
║ Car ║ 15 ║ 1 ║ OK ║ -1 ║
║ Dog ║ 3 ║ 1 ║ OK ║ -1 ║
╚═════╩════╩═══╩════╩════╝
Câu trả lời cho giao nhau (select * from A INTERSECT select * from B
) sẽ là:
╔═════╦════╦═══╦════╦════╗
║ A ║ B ║ C ║ D ║ E ║
╠═════╬════╬═══╬════╬════╣
║ Car ║ 10 ║ 1 ║ OK ║ -1 ║
║ Dog ║ 3 ║ 1 ║ OK ║ -1 ║
╚═════╩════╩═══╩════╩════╝
Vì chỉ có giá trị khác biệt. Những gì tôi muốn được tham gia hàng thông thường, giống như:
╔═════╦════╦═══╦════╦════╗
║ A ║ B ║ C ║ D ║ E ║
╠═════╬════╬═══╬════╬════╣
║ Car ║ 10 ║ 1 ║ OK ║ -1 ║
║ Car ║ 10 ║ 1 ║ OK ║ -1 ║
║ Dog ║ 3 ║ 1 ║ OK ║ -1 ║
╚═════╩════╩═══╩════╩════╝
Quan sát tôi không cần phải biết những gì tôi phải liên kết (kết nối được vị trí, giống như INTERSECT
). ID sẽ là một cái gì đó được xây dựng bằng cách sử dụng tất cả các cột (liên kết giữa bảng là tất cả các cột, dựa trên vị trí của chúng).
HUH? Tại sao kết quả có hai giá trị cho 1? Đó không phải là ý nghĩa của INTERSECT. Nó được thiết kế để trả về các giá trị riêng biệt hiện diện trong cả hai. Bạn sẽ cần một cái gì đó khác hơn là giao nhau cho điều này để làm việc. –
Đây là một ví dụ. Việc kết nối các bảng sẽ là vị trí. Cũng giống như giao lộ. – Nizam
@SeanLange - Ansi SQL có 'INTERSECT ALL' và' EXCEPT ALL'. –