【问题标题】:Unknown column syntax error in select query选择查询中的未知列语法错误
【发布时间】:2018-02-05 14:23:49
【问题描述】:

如何解决此问题:

SQL 错误:

Unknown column 'exdays_relation.exercise_id' in 'on clause'

SQL查询:

SELECT * FROM
  `user_days`
LEFT JOIN `menu` ON `menu`.`id` = `exdays_relation`.`exercise_id`
JOIN `exdays_relation` ON `exdays_relation`.`day_id` = `user_days`.`day_id`
WHERE `user_days`.`for_date` LIKE '2016-12-12'

查询关系:

menu
-------
id  int(11) PK  AUTO_INCREMENT 

exdays_relation
-------------------
exdaysrel_id       int(11)  PK  AUTO_INCREMENT
exercise_id        int(11)  FK  from id(menu)   
day_id             int(11)  FK  from day_id(user_days)


user_days
-----------------
day_id      int(11)     PK 
for_date    date

【问题讨论】:

  • 请不要使用不适用于您的问题的标签。你有足够的声誉知道这一点。我删除了数据库标签,因为不清楚您实际使用的是哪一个。请添加only你实际使用的数据库的标签。

标签: mysql sql select join


【解决方案1】:

因为,你是 JOINing 与 user_daysmenu 表,但提到来自 exdays_relation 的列

`user_days`
 LEFT JOIN `menu` ON `menu`.`id` = `exdays_relation`.`exercise_id`

您需要提及表中的列,谁正在加入,您不能在其他地方提及列名。

【讨论】:

    【解决方案2】:

    切换连接。第一次连接使用尚未连接的表

    SELECT * 
    FROM user_days 
    JOIN exdays_relation ON exdays_relation.day_id = user_days.day_id 
    LEFT JOIN menu ON menu.id = exdays_relation.exercise_id 
    WHERE user_days.for_date = '2016-12-12'
    

    【讨论】:

      猜你喜欢
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      • 2016-09-21
      • 1970-01-01
      • 2023-01-23
      • 1970-01-01
      • 2018-06-20
      • 2013-11-01
      相关资源
      最近更新 更多