我在Python中使用sqlalchemy执行SQL查询时遇到问题。
我有几个表,其中包含有关我的商品的不同信息。一个表包含产品ID,类别ID和其他一些产品信息。其他表包含有关产品分类的所有信息。
类别表用于包含有关最高类别,子类别和类别本身(用于电子商店)的所有信息。
这是进行连接的代码的一部分:
LEFT JOIN products AS p ON pc.product_id = p.id
LEFT JOIN categories AS c ON p.category_id = c.id
LEFT JOIN categories AS c_top ON c.top_parent_id = c_top.id
LEFT JOIN categories as sub ON c.parent_id = sub.id
我正在尝试获取一些特定的项目列表,因此我想使用其子类别(sub.id)和类别ID(c.id)过滤掉某些项目。我这样做是这样的:
AND sub.id not in (2837, 8225, 5681, 5693, 3773, 5714, 4901, 5792, 4943, 9133, 5801, 7370, 8183, 6779, 3515, 4175,9086, 4541, 3419, 5096, 82, 124, 1604, 5054, 11615, 3326, 1598, 7931, 5135, 1505, 10971, 10607,8243, 390, 10346, 3380, 7958, 8195)
因此,假设我想从我的Datagrip控制台中的子类别82中请求商品,我没有得到任何结果。但是,一旦我保存了该查询并在sqlalchemy中在Python中使用它来获取这些结果,它就以某种方式忽略了条件过滤器中的一些数字,并将其传递到我的数据框。为什么会这样?