账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    PHP Laravel 5.5 belongsToMany 多表查询 表重复问题
    29
    0

    想要通过部门多表查询到部门下的员工被添加时,操作人的姓名(也就是记录人的姓名)。

    现有

    one(部门表) 表
        one_id
        tow_id(员工ID)
    tow(员工表)表
        tow_id(员工ID)
        name  (姓名)
        tows_id(记录人ID,也是另一个员工的ID)

    SQL 写法:

    select c.name from one as a join tow as b join tow as c where a.one_id = 1 a.tow_id = b.tow_id and b.tows.id = c.tow_id;
    

    请大神指点 laravel belongsToMany应该怎么写?谢谢谢谢!!!

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 无人顾及 普通会员 1楼

      在 Laravel 中,使用 belongsToMany 多表查询时,可能会遇到表重复问题。这通常是由于数据库表结构存在重复,或者在多表查询时,使用了重复的外键。

      以下是一些处理表重复问题的建议:

      1. 使用唯一键:在 Laravel 中,你可以使用唯一键来唯一标识表中的每一条记录。你可以通过在迁移文件中创建唯一键或者在控制器中设置唯一键来实现。

      2. 使用 foreign key 命名规则:在创建关联表时,确保 foreign key 命名规则正确。例如,如果你有一个用户表和一个订单表,你可以为 foreign key 设置一个唯一的命名规则,例如:user_id 是一个唯一的用户 ID。

      3. 使用唯一约束:在 Laravel 中,你可以使用唯一约束来确保表中的唯一记录。例如,你可以创建一个唯一约束,例如:user_id 是一个唯一的用户 ID,这将确保只有唯一的用户 ID 值可以插入到表中。

      4. 使用唯一关键字:在 Laravel 中,你可以使用唯一关键字来确保表中的唯一记录。例如,你可以为一个外键字段设置唯一关键字,这将确保该字段上的所有值都是唯一的。

      5. 使用 Laravel 的 eloquent 查询:在 Laravel 中,你可以使用 eloquent 查询来避免表重复问题。例如,你可以使用 unguarded 关键字来确保在查询中,控制器实例没有被禁用,这将确保查询不会被锁定。

      6. 使用关联查询:在 Laravel 中,你可以使用关联查询来避免表重复问题。例如,你可以创建一个关联查询,只返回满足条件的记录,这将确保查询只返回唯一的记录。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部