为什么我的 SQL WHERE 子句没有受到尊重?
Why isn't my SQL WHERE clause being respected?
SELECT * FROM "transaction"
WHERE type = {transaction_type} AND
(from_member_id AND to_member_id) IN (SELECT member_id FROM org WHERE org_member = {org.id})
我发现我检查 from_member_id 和 to_member_id 是否在我想要的组织中的子句实际上没有得到尊重。
为清楚起见;我想 select 同一组织成员之间的所有交易。
此外,我希望我的联盟也能正常工作(因为成员与 org_member 中引用的成员相同)
SELECT * FROM "transaction"
INNER JOIN member ON "transaction.member_id" = member.id
WHERE type = {transaction_type} AND
("transaction.from_member_id" AND "transaction.to_member_id") IN (SELECT member_id FROM org WHERE org_member = {org.id})
如有任何帮助,我们将不胜感激。
此外,注意:我在 python 中插入字符串时的 {} 语法,因此请忽略。
表达式中:
(from_member_id AND to_member_id) IN (...)
第一部分将被视为具有可能值 1、0 和 null 的布尔表达式。所以它不会产生预期的结果。
你需要分别检查它们:
AND transaction.from_member_id IN (SELECT member_id FROM org WHERE org_member = {org.id})
AND transaction.to_member_id IN (SELECT member_id FROM org WHERE org_member = {org.id})
SELECT * FROM "transaction"
WHERE type = {transaction_type} AND
(from_member_id AND to_member_id) IN (SELECT member_id FROM org WHERE org_member = {org.id})
我发现我检查 from_member_id 和 to_member_id 是否在我想要的组织中的子句实际上没有得到尊重。
为清楚起见;我想 select 同一组织成员之间的所有交易。
此外,我希望我的联盟也能正常工作(因为成员与 org_member 中引用的成员相同)
SELECT * FROM "transaction"
INNER JOIN member ON "transaction.member_id" = member.id
WHERE type = {transaction_type} AND
("transaction.from_member_id" AND "transaction.to_member_id") IN (SELECT member_id FROM org WHERE org_member = {org.id})
如有任何帮助,我们将不胜感激。
此外,注意:我在 python 中插入字符串时的 {} 语法,因此请忽略。
表达式中:
(from_member_id AND to_member_id) IN (...)
第一部分将被视为具有可能值 1、0 和 null 的布尔表达式。所以它不会产生预期的结果。
你需要分别检查它们:
AND transaction.from_member_id IN (SELECT member_id FROM org WHERE org_member = {org.id})
AND transaction.to_member_id IN (SELECT member_id FROM org WHERE org_member = {org.id})