-2

我有一个正常工作的查询

选择 A.*、B.*
从 A 在 A.id = B.id 和 B.country = 'USA' 上左连接 B

现在有了左连接,我只能放置 1 个条件(A.id = B.id)。所以我必须把 B.country = 'USA' 部分放在其他地方。有什么解决方法吗?我可以使用子查询。

更新:我必须使用一个框架(DBIx::Class),我在 Schema 中定义了单个条件(Id 匹配),并且改变它并不简单。

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 回答