Tôi có hồ sơ như sau:Làm thế nào để chọn giá trị khác biệt với một cột duy nhất
key | name
--------------
1111 | aa
1111 | bb
2222 | cc
tôi cần phải chọn key
và name
khi giá trị key
là khác biệt. Khi tôi cố gắng:
select distinct key, name from table;
tôi có tất cả các hàng từ các truy vấn có khác biệt cho sự kết hợp của các cột: key
và name
. Nhưng, những gì tôi cần chỉ khác biệt key
và tôi không quan tâm đến số name
. Tôi có rất nhiều hồ sơ, vì vậy tôi cần một phương pháp thực tế.
Tôi tin rằng đây là SQL hợp lệ, altough MySQL chấp nhận nó và trả về một cái gì đó. Ngoài ra điều này "cái gì" là một tên ngẫu nhiên từ tập hợp các tên có cùng một khóa, do đó kết quả là không xác định (tùy thuộc vào xóa bảng và chèn). Điều này không có ý nghĩa và khuyến khích sự hiểu lầm giữa những người chưa nắm bắt được khái niệm tổng hợp. – colemar
Tôi không thể nói nó không hợp lệ. MySQL cho phép nó, và chúng ta có thể sử dụng nó. Tôi đồng ý về hồ sơ ngẫu nhiên; nên có hàm tổng hợp hoặc mệnh đề ORDER BY - sẽ giúp chọn giá trị chính xác. Tôi sẽ chỉnh sửa câu trả lời của mình. – amk
Nó không hợp lệ đối với mỗi ANSI/ISO SQL, vì nó dẫn đến kết quả không rõ ràng. MySQL và SQLite là các triển khai RDBMS duy nhất cho phép biểu mẫu này, theo như tôi biết. Các sản phẩm RDBMS khác trả về lỗi. –