Rust 带有eq_any的子查询无法编译

Rust 带有eq_any的子查询无法编译,rust,rust-diesel,Rust,Rust Diesel,我的模型的相关部分: 桌子{ 服务器网站{ id->Integer, 服务器\u数据库\u id->可为空, 服务器\u id->Integer, } } 桌子{ 服务器数据库{ id->Integer, 服务器\u id->Integer, } } 桌子{ 服务器{ id->Integer, } } 可接合!服务器网站->服务器数据库服务器数据库id; 允许表格在同一查询中出现!服务器网站、服务器数据库; [deriveQueryable、Debug、Clone、PartialEq、Eq] 发

我的模型的相关部分:

桌子{ 服务器网站{ id->Integer, 服务器\u数据库\u id->可为空, 服务器\u id->Integer, } } 桌子{ 服务器数据库{ id->Integer, 服务器\u id->Integer, } } 桌子{ 服务器{ id->Integer, } } 可接合!服务器网站->服务器数据库服务器数据库id; 允许表格在同一查询中出现!服务器网站、服务器数据库; [deriveQueryable、Debug、Clone、PartialEq、Eq] 发布结构服务器{ 酒吧id:i32, } [deriveQueryable、Debug、Clone、PartialEq、Eq] 发布结构服务器网站{ 酒吧id:i32, 发布服务器\数据库\ id:选项, 发布服务器id:i32, } [deriveQueryable、Debug、Clone、PartialEq、Eq] 发布结构服务器数据库{ 酒吧id:i32, 发布服务器id:i32, } 我试图用Diesel表达以下工作SQLite查询:

从服务器数据库id所在的服务器网站中选择* 从服务器\数据库中选择id,其中服务器\ id=83 ; 这是我的柴油机查询代码:

使用projectpadsql::schema::server::dsl作为srv; 使用projectpadsql::schema::server\U database::dsl作为数据库; 使用projectpadsql::schema::server\u网站::dsl作为srvw; 让数据库\u id\u from\u server=db::server\u数据库 .filterdb::服务器\u id.eq83 .selectdb::id; let used_websites=srvw::server_website .filtersrvw::服务器\u数据库\u id.eq\u任何数据库\u id\u来自\u服务器 .load::sql\u连接 打开…的包装 此操作失败,错误如下:

错误[E0277]:未满足特性绑定'diesel::query\u builder::SelectStatement:diesel::expression::array\u comparison::AsInExpression' 我看到编译器希望内部查询的类型为AsInExpression,除了可以为null之外,它对我来说还不错

内部查询或多或少有类型SelectStatement,这对我来说很好,因为id是整数,就像外部查询所需要的那样

我觉得我已经很接近了,但我无法确定问题出在哪里。

我需要使用nullable来获得匹配的类型。请注意db::id.nullable:

让数据库\u id\u from\u server=db::server\u数据库 .filterdb::服务器id.eqserver\U id .selectdb::id.nullable; let used_websites=srvw::server_website .filtersrvw::服务器\u数据库\u id.eq\u任何数据库\u id\u来自\u服务器 .load::sql\u连接 打开…的包装 Georg Semmler-@weiznich回答了这个问题