-2

適切に機能するクエリがあります

A.*、B.*を選択
A から左へ A.id = B.id および B.country = 'USA' で B に参加

左結合では、1 つの条件 ( A.id = B.id) のみを配置できます。したがって、B.country = 'USA' の部分を別の場所に配置する必要があります。回避策はありますか?サブクエリを使用できます。

更新: スキーマで単一の条件 (ID マッチング) を定義したフレームワーク (DBIx::Class) を使用する必要があり、それを変更するのは簡単ではありません。

4

1 に答える 1

2

B をサブクエリに分割し、結合の代わりにそこでフィルタリングすることができます

SELECT A.*, B.*
FROM A
LEFT JOIN (
SELECT *
FROM B
WHERE COUNTRY = 'USA'
) B
    ON A.ID = B.ID
于 2011-11-15T20:51:05.307 に答える