栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何通过单个查询从两个表中填充两个对象?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何通过单个查询从两个表中填充两个对象?

看来这是您最近的查询尝试:

SELECt a1.*, p.lifeSpan, a2.* FROM Zoo AS z INNER JOIN Plants AS p ON p.parent_id=z.id INNER JOIN Animal AS a1 ON (a1.id=z.predator)INNER JOIN Animal AS a2 ON (a2.id=z.prey)";WHERe z.preyType=@carnivore

从语句内部丢弃分号。也放弃双引号。

为了简化SQL,暂时不包括WHERe子句。

然后,您应该可以更好地解决Access的db引擎多次联接所需的括号问题。

SELECt a1.*, p.lifeSpan, a2.* FROM    ((Zoo AS z     INNER JOIN Plants AS p ON p.parent_id=z.id)     INNER JOIN Animal AS a1 ON a1.id=z.predator)    INNER JOIN Animal AS a2 ON a2.id=z.prey

注意,我丢弃了那些用ON表达式括起来的括号。简单的ON表达式不需要它们。如果您有一个用于ON的复合表达式,则需要这样的括号:

ON (p.parent_id=z.id AND p.foo = z.bar)

我建议的示例查询对我来说看起来是正确的。(如果它对您有用,请再次添加您的WHERe子句。)但是,由于我使用Access的查询设计器来设置联接,因此我并没有特别注意括号的位置…并且它添加了db引擎所需的括号。

我敦促您也这样做。如果您使用的是来自Dot.Net的Access数据库,而没有安装Access副本,那么您确实应该获得一个副本。尝试在没有该数据库的本机开发工具的情况下使用数据库是一个不合理的挑战……有点像在戴手套的时候尝试打字。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/634767.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号