Bir sql sorgusu tamamlamaya çalışıyorum ama şu anda bana sorun veriyor, belki birileri bana yardımcı olabilir.SQL tek bir sütun için sorgu sonuçları gruplandırma
Burada kısa versiyonu (fransız isimler için üzgün) tabloları var:
Lexique
ID
terme_fr
definition_fr
DomaineDuTerme
lexique_id
domaine_id
Domaine
Dolayısıyla, Lexique tablosundaki bir öğenin birçok Domaine olabilir ve birçok Lexique öğesi için bir Domaine kullanılabilir. DomaineDuTerme tablosu, birçok ilişkiyi birçok şekilde içeren bir ara ürün olarak var.
Sorgumun her bir ayrı Lexique öğesi için kayıt kümesinin tek bir satırında domaine_fr'yi yeniden gruplandırmasını istiyorum. Şu anda istek, ara tablodaki her ilişki için bana bir kayıt döndürüyor. Bir Lexique öğesinin ihtiyaç duyulduğunda filtreleri uygulamak olduğu Domaine (ler) in bilinmesi için bu ara tabloya ihtiyacım var. Bu istek ile
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' `
'test' eleman katları Domaines dernek varsa, ben sonuçları gibi katları kayıtları alacak:
İşte şimdiye kadar benim talebidir. Birden çok derneklerin Dom.domaine_fr alanında listeleneceği tek bir kayıt almak istiyorum.
Bu mümkün mü? DISTINCT ve ORDER BY ile birlikte denedim, JOIN'in her sürümü ile ama hala tüm dernekleri alıyorum.
Bunu, ayrı sorgularda veya kayıt kümesini aldıktan sonra kodda yapabileceğimi biliyorum, ancak eminim SQL üzerinden bir yol var. Bu yardımcı olabiliyorsa, veritabanı şemasını yeniden düzenlemek için de açıkım.
Çok teşekkürler!
Örnek verileri ve istenen sonuçları kaynağı? Ayrıca hangi RDBMS kullanıyorsunuz? – sgeddes