数字派

数字派

我就是个数字派,我有无限的可能,但是我不会陷入循环。

  • 财富值1045
  • 威望值10
  • 总积分1635

个人信息

  • 收藏了话题
    如何实现SELECT ... FOR UPDATE
  • 回复了 的回答

    情况一:如果你的集合表和商品表有一个独立对应的关联字段(其实这个字段没什么用,只是迎合Yii的hasMany写法)
    return $this->hasMany(Goods::className(), ['商品关联字段(如:userid)', '商品库关联字段(如:userid)'])->andWhere([Yii::$app->db->schema->getRawTableName(Goods::::tableName()).".id" => $this-> good_ids]);//两个userid是一致的
    情况二:如果两个表没有独立对应的字段
    return Goods()::find()->where(['id'=>$this-> good_ids]);

    两种写法都没用过,想想的思路,可以试一下,望回复验证结果

    嗯嗯,你说的很对,hasmany只是声明了一个link

  • 回复了 的回答

    情况一:如果你的集合表和商品表有一个独立对应的关联字段(其实这个字段没什么用,只是迎合Yii的hasMany写法)
    return $this->hasMany(Goods::className(), ['商品关联字段(如:userid)', '商品库关联字段(如:userid)'])->andWhere([Yii::$app->db->schema->getRawTableName(Goods::::tableName()).".id" => $this-> good_ids]);//两个userid是一致的
    情况二:如果两个表没有独立对应的字段
    return Goods()::find()->where(['id'=>$this-> good_ids]);

    两种写法都没用过,想想的思路,可以试一下,望回复验证结果

    第一种先不说,但是第二种肯定不行,你获取一个商品合集列表再循环page_size次调用这个语句,那就是page_size次的查询。。。

  • 2019-03-16 已签到
    连续签到5天,获得了20个金钱
  • 回复了 的回答

    从你问的问题来看,你好像不是表连接的问题,而是条件查询的问题。
    表连接具体值的情况,目前没有见到过。目前都是:

    user.user_id = info.user_id
    

    类似上述用表的字段去关联,而不是具体值。
    回到你说的业务里,字段里是一个逗号分割的字符串,直接在where里写过滤条件就行,而不是连接条件。希望你对这两个概念区分下。

    其实,我只是想省去一个“中间表”,但是后来发现YII2还是不支持这种写法,应该按照数据库设计范式,所以我就加上了一个中间表,问题也就不存在了。

  • 2019-03-15 已签到
    连续签到4天,获得了20个金钱
  • 回复了 的回答
    return Goods()::find()->where(['id'=>$this-> good_ids])->all;
    

    这样可以获得数据,但是没法在其他地方使用with之类的,坐等更好办法~

    你说的对,而且也没办法直接输出,比如放在数据提供器里使用

  • 2019-03-14 已签到
    连续签到3天,获得了15个金钱
  • 2019-03-13 已签到
    连续签到2天,获得了10个金钱
经理 等级规则
1635/2000
资料完整度
60/100
用户活跃度
20/100

Ta的关注

3

Ta的粉丝

10

Ta的访客

76