SQLite左外连接查询有重复字段处理方法

SQLite左外连接查询有重复字段处理方法

sqlite在连表查询过程中,当主表和副表有相同的字段时,纵然结果正确,但是在处理查询结果时,在取主表的字段但会返回副表的字段值。

现有表ZWAMESSAGE和表ZWAMEDIAITEM,其中两表中有相同的三个字段,
这里写图片描述
执行下面语句时,会产生重复字段

SELECT * FROM ZWAMESSAGE mess LEFT OUTER JOIN ZWAMEDIAITEM ON mess.Z_PK=ZWAMEDIAITEM.ZMESSAGE

查询结果中有重复的字段,可以看到在主表的后面加了”(1)”如图所示
这里写图片描述
在处理结果时候,取结果中Z_PK字段时,会得到上图中Z_PK(1)中的数据值,而不是我们想要的Z_PK。

while ([resultSet next]) {
            NSNumber *_id = [NSNumber numberWithInt:[resultSet intForColumn:@"Z_PK"]];//辞值会是Z_PK(1)的值

解决办法

将主表字段全部显示,而副表只显示部分字段。可用如下sql查询:

SELECT mess.*, media.ZCLOUDSTATUS, media.ZFILESIZE,media.ZMEDIAORIGIN,media.ZMOVIEDURATION ... FROMZWAMESSAGE messLEFT OUTER JOIN ZWAMEDIAITEM media ON mess.Z_PK = media.ZMESSAGE

可以看到,上述过滤了media.Z_PK、media.Z_ENT、media.Z_OPT等字段,此时,处理过程数据获取就正确。

开发过程中的一点小笔记,避免后续少走弯路,特记录于此。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jarlen John

谢谢你给我一杯咖啡的温暖

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值