SQLクエリを完了しようとしていますが、今は問題が発生しています。誰かが私を助けてくれるかもしれません。
短いバージョンの表は次のとおりです (フランス語の名前で申し訳ありません)。
レキシク
ID
terme_fr
definition_fr
ドメーヌデュテルメ
lexique_id
domaine_id
ドメーヌ
ID
domaine_fr
したがって、Lexique テーブル内の 1 つの要素に複数の Domaine を含めることができ、1 つの Domaine を複数の Lexique 要素に使用できます。DomaineDuTerme テーブルは、これらの多対多の関係を含む中間体として存在します。
Lexique 要素ごとにレコードセットの 1 行に domaine_fr を再グループ化するクエリを作成したいと思います。現在、要求は中間テーブルで見つかったすべての関係のレコードを返します。この中間テーブルは、Lexique 要素が必要に応じてフィルターを適用するドメインを知る必要があります。
これまでの私のリクエストは次のとおりです。
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' 要素に複数の Domaines 関連付けがある場合、複数のレコードが結果として取得されます。複数の関連付けが Dom.domaine_fr フィールドにリストされる単一のレコードを取得したいと思います。
これは可能ですか?DISTINCT と ORDER BY、および JOIN のすべてのバージョンを試してみましたが、それでもすべての関連付けが取得されます。
別のクエリで、またはレコードセットを取得した後のコードで実行できることはわかっていますが、SQL を介した方法があると確信しています。これが役立つ場合は、データベース スキーマを再編成することにもオープンです。
どうもありがとう !