MySQL 说该列不明确

标签 mysql

我需要对 MySQL 表上的同一字段执行查询,但使用不同的参数。这是我的查询。出现的问题是 MySQL 说 users_name 不明确。

SELECT projects_id, 
projects_users_id,projects_companies_id,projects_name,
projects_description,project_registered_date,
projects_users_id_register,
users.users_name as userInCharge,companies.companies_name as company,
users.users_name as user_register FROM projects 
LEFT JOIN users as userInCharge ON (users_id = projects_users_id) 
LEFT JOIN users as register ON (users_id=projects_users_id_register)
LEFT JOIN companies ON (companies_id = projects_companies_id) ORDER BY projects_id DESC 

我的目标是获得项目负责人和项目注册人的ID。我该怎么做?

最佳答案

由于这些LEFT JOIN子句而导致您的歧义:

LEFT JOIN users as userInCharge ON (users_id = projects_users_id) 
LEFT JOIN users as register ON (users_id=projects_users_id_register)

您需要指定 users_id 来自哪里(是的 - 我知道它们来自同一个表,但 SQL 有时有点慢)尝试:

LEFT JOIN users as userInCharge ON (userInCharge.users_id = projects_users_id) 
LEFT JOIN users as register ON (register.users_id=projects_users_id_register)

关于MySQL 说该列不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19578132/

相关文章:

mysql - 缺少 mysql 查询的一些结果

php - 循环重复相同的数据 8 次或更多次

mysql - SQL语法错误

Mysql十进制: floor instead of round

php - 映射下拉列表 2 中的值取决于通过 php mysql 在下拉列表 1 中选择的值

php - 如何从结果集中获取字符集?

python - 将字典的字典展平为 python 中的列表

mysql - 检查字符串中是否包含超过5位的数字

php - foreach 和 SQL 的 PDO 错误

mysql - 为具有正值的行返回 true