クエリを書くのに助けが必要です。このスキーマを例として使用します。
Table: A
id 1
id 2
Table: ALocalized
A_id 1, culture 1, name 'EN translation'
A_id 1, culture 2, name 'PT translation'
A_id 2, culture 1, name 'EN translation'
これは、情報をローカライズするために使用しているスキーマです。A の各レコードには、 ALocalizedに少なくとも 1 つの関連レコードがありますが、特定のカルチャのローカライズされたレコードを持たない行がいくつかある場合があります。
この例では、Aにクエリを実行し、カルチャ 2 でALocalizedをフィルター処理します。カルチャ 2 が存在しない場合は、他の利用可能なものを返します。結果は次のようになります。
A_id 1, culture 2, name 'PT translation'
A_id 2, culture 1, name 'EN translation'
サブクエリを使用して両方のテーブルを結合しようとしましたが、私の問題はwhere句にあると思います。
where (ALocalized.culture = @cultureparameter OR ALocalized.culture = 1 OR ALocalized.culture = 2) limit 1
@cultureparameter が 2 の場合、カルチャ 1 が返されます。where 句の順序を尊重していません。
どうすればいいですか?ALocalizedの存在について各Aレコードをチェックするためにループの使用を避けようとしていました。
前もって感謝します