欢迎光临
我们一直在努力

Error 1052 (23000): Column ‘blocked_companies‘ in where clause is ambiguous 翻译下报错

报错翻译:

错误 1052(23000):WHERE 子句中的列 blocked_companies 含义不明确(存在歧义)。

含义说明:

你执行的 SQL 中,WHERE 条件里用到了 blocked_companies 这个列名,但当前查询涉及的多张表中不止一张表有同名列,MySQL 不知道你指的是哪张表的 blocked_companies。

常见原因:

SELECT *
FROM table_a a
JOIN table_b b ON a.id = b.a_id
WHERE blocked_companies = 1; — 两张表都有 blocked_companies,MySQL 不知道指哪个

解决方法:

给列名加上表别名限定,明确指定是哪张表的列:

WHERE a.blocked_companies = 1

或:

WHERE b.blocked_companies = 1

如果只想保留一列,也可以在 SELECT 中明确写出表别名,避免 SELECT * 带出同名列。

修改后提交代码,从开发分支合并到主分支:

从其他开发分支(如 dev、feature 分支)合并到 main 分支,核心步骤是“先同步,后合并”。根据团队协作规范的不同,通常有三种主流操作方式:命令行 Merge、命令行 Rebase 以及通过代码托管平台(GitHub/GitLab)的 Pull Request (PR) / Merge Request (MR)。

以下是详细的操作指南:


方式一:命令行直接合并(最基础、最常用)

适合本地开发,且团队允许直接在本地合并后推送。

1. 切换并更新 main 分支
首先确保你本地的 main 分支是最新的,避免基于旧代码合并。

git checkout main
git pull origin main

2. 合并开发分支
将你的开发分支(假设叫 feature/your-branch)合并到当前的 main。

git merge feature/your-branch

注意:如果此时遇到冲突(就像你之前遇到的 proposal_nda_service.go 冲突),你需要打开文件手动解决冲突,然后执行 git add 和 git commit 完成合并。

3. 推送到远端

git push origin main

方式二:命令行变基合并(保持提交历史整洁)

如果你希望 main 分支的提交历史是一条干净的直线(没有杂乱的分叉和 Merge Commit),可以使用 rebase。

1. 切换到开发分支并变基到最新的 main

git checkout feature/your-branch
git pull origin main # 确保本地 main 最新
git rebase main # 把你的提交“重放”到 main 的最新提交之后

注意:Rebase 过程中如果遇到冲突,解决后执行 git add .,然后执行 git rebase –continue。

2. 切回 main 并合并
因为变基后,开发分支的起点已经是 main 的最新位置,所以此时的合并会是“快进合并(Fast-forward)”,不会产生额外的 Merge Commit。

git checkout main
git merge feature/your-branch
git push origin main

方式三:Pull Request (PR) / Merge Request (MR)(企业级标准做法)

强烈推荐! 在正规团队协作中,不应该直接使用命令行推送到 main。main 分支通常受保护。

  • 推送开发分支:把本地开发分支推送到远程仓库。

  • git push origin feature/your-branch

  • 创建 PR/MR:在 GitHub/GitLab 页面上,点击 "New Pull Request"。

    • 源分支(Source):feature/your-branch

    • 目标分支(Target):main

  • 代码审查(Code Review):邀请同事 Review 代码,或者等待 CI/CD(自动化测试)跑通。

  • 点击合并(Merge):审查通过后,在页面上点击合并按钮。平台通常提供三种合并策略:

    • Create a merge commit:保留完整历史。

    • Squash and merge:把开发分支的多个提交压缩成一个,合并进 main(推荐,历史最干净)。

    • Rebase and merge:变基合并,不留 Merge 节点。

  • 💡 核心避坑指南

  • 合并前一定要 pull:永远不要在过期的 main 分支上合并,否则极易产生冲突。

  • 善用 git status:在合并前,确保你的工作区(Working Tree)是干净的。如果有未提交的代码,请先 git commit 或 git stash(如同你之前遇到的报错)。

  • 不要在主分支上直接写代码:main 分支只用来接收合并,开发和修改永远在自己的独立分支上进行。

  • 如何撤销错误的合并?

    • 如果还没 push:git reset –hard HEAD~1(退回到合并前)。

    • 如果已经 push 到远端:不要用 reset 强推,应该用 git revert -m 1 <merge-commit-hash> 生成一个新的反向提交来撤销。

  • 赞(0)
    未经允许不得转载:171主机测评 » Error 1052 (23000): Column ‘blocked_companies‘ in where clause is ambiguous 翻译下报错
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址