Tôi đang cố gắng hoàn thành một truy vấn sql nhưng nó mang lại cho tôi sự cố ngay bây giờ, maybee ai đó có thể giúp tôi với nó.Kết quả truy vấn nhóm SQL cho một cột đơn
Dưới đây là các bảng trong phiên bản ngắn hơn (xin lỗi vì những cái tên tiếng Pháp):
Lexique
ID
terme_fr
definition_fr
DomaineDuTerme
lexique_id
domaine_id
Domaine
ID
domaine_fr
Vì vậy, một yếu tố trong bảng Lexique có thể có nhiều Domaine, và một Domaine có thể được sử dụng cho nhiều yếu tố Lexique. Bảng DomaineDuTerme là một trung gian có chứa nhiều mối quan hệ.
Tôi muốn truy vấn của mình để nhóm lại domaine_fr trong một hàng của recordset cho từng phần tử Lexique riêng biệt. Hiện tại, yêu cầu trả lại cho tôi một bản ghi cho mọi mối quan hệ được tìm thấy trong bảng trung gian. Tôi cần bảng trung gian này để biết trong đó có một phần tử Lexique là áp dụng các bộ lọc khi cần thiết.
Đây là yêu cầu của tôi cho đến nay:
SELECT
Lex.terme_fr,
Lex.definition_fr,
Dom.domaine_fr
FROM
((Lexique AS Lex
LEFT JOIN
DomaineDuTerme AS Ddt ON Lex.ID = Ddt.lexique_id)
LEFT JOIN
Domaine AS Dom ON Ddt.domaine_id = Dom.ID)
WHERE Lex.terme_fr='test' `
Với yêu cầu này, nếu các yếu tố 'test' có các hiệp hội bội Domaines, tôi sẽ nhận được bội số hồ sơ như kết quả. Tôi muốn có một bản ghi duy nhất nơi các hiệp hội nhiều người sẽ được liệt kê trong trường Dom.domaine_fr.
Điều này có khả thi không? Tôi đã thử với DISTINCT và ORDER BY, cũng như với mọi phiên bản JOIN nhưng tôi vẫn nhận được tất cả các liên kết.
Tôi biết tôi có thể làm điều đó trong các truy vấn riêng biệt, hoặc trong mã sau khi nhận được recordset, nhưng tôi chắc chắn có một cách thông qua SQL. Tôi cũng mở để tổ chức lại lược đồ cơ sở dữ liệu nếu điều này có thể hữu ích.
Rất cám ơn!
Bạn có thể cung cấp dữ liệu mẫu và kết quả mong muốn? Ngoài ra, RDBMS bạn đang sử dụng? – sgeddes