0

我对一个简单的查询有一点问题。这里是:

SELECT `T_COURS`.`COU_DATE`,
`T_SESSIONS`.*,
`T_FORMATIONS`.`FOR_TITRE`, `T_FORMATIONS`.`FOR_ID`, `T_FORMATIONS`.`FOR_TITRE`,     `T_FORMATIONS`.`FOR_CATEGORIE`,
`T_FORMATIONS`.`FOR_DESCRIPTION`, `T_FORMATIONS`.`FOR_MIN_PART`, `T_FORMATIONS`.`FOR_MAX_PART`, `T_FORMATIONS`.`FOR_PRIX`, `T_FORMATIONS`.`FOR_LANGUE`
FROM `T_FORMATIONS`
INNER JOIN `T_COURS` ON `T_SESSIONS`.`SES_ID` = `T_COURS`.`COU_SES_ID`
INNER JOIN `T_SESSIONS` ON `T_FORMATIONS`.`FOR_ID` = `T_SESSIONS`.`SES_FOR_ID`
WHERE `T_SESSIONS`.`SES_ETAT` = 1
ORDER BY `T_COURS`.`COU_DATE` ASC, `T_SESSIONS`.`SES_TITRE` ASC, `T_FORMATIONS`.`FOR_TITRE` ASC LIMIT 5

当我尝试运行它时,我收到以下消息:

#1054 - Unknown column 'T_SESSIONS.SES_ID' in 'on clause'

我真的不明白为什么因为一切都存在于我的数据库中?

我在互联网上寻找答案,但它没有帮助我(或者我可能不理解我阅读的答案)。

4

1 回答 1

0

在没有看到您的完整表格结构的情况下,我将首先交换您的JOIN订单,您T_SESSIONS在尝试在当前版本中使用它之后加入。您目前拥有:

FROM `T_FORMATIONS`
INNER JOIN `T_COURS` 
  ON `T_SESSIONS`.`SES_ID` = `T_COURS`.`COU_SES_ID`
INNER JOIN `T_SESSIONS` 
  ON `T_FORMATIONS`.`FOR_ID` = `T_SESSIONS`.`SES_FOR_ID`

将其更改为:

FROM `T_FORMATIONS`
INNER JOIN `T_SESSIONS` 
  ON `T_FORMATIONS`.`FOR_ID` = `T_SESSIONS`.`SES_FOR_ID`
INNER JOIN `T_COURS` 
  ON `T_SESSIONS`.`SES_ID` = `T_COURS`.`COU_SES_ID`

进行完整查询:

SELECT `T_COURS`.`COU_DATE`,
  `T_SESSIONS`.*,
  `T_FORMATIONS`.`FOR_TITRE`, 
  `T_FORMATIONS`.`FOR_ID`, 
  `T_FORMATIONS`.`FOR_TITRE`,     
  `T_FORMATIONS`.`FOR_CATEGORIE`,
  `T_FORMATIONS`.`FOR_DESCRIPTION`, 
  `T_FORMATIONS`.`FOR_MIN_PART`, 
  `T_FORMATIONS`.`FOR_MAX_PART`, 
  `T_FORMATIONS`.`FOR_PRIX`, 
  `T_FORMATIONS`.`FOR_LANGUE`
FROM `T_FORMATIONS`
INNER JOIN `T_SESSIONS` 
  ON `T_FORMATIONS`.`FOR_ID` = `T_SESSIONS`.`SES_FOR_ID`
INNER JOIN `T_COURS` 
  ON `T_SESSIONS`.`SES_ID` = `T_COURS`.`COU_SES_ID`
WHERE `T_SESSIONS`.`SES_ETAT` = 1
ORDER BY `T_COURS`.`COU_DATE` ASC, `T_SESSIONS`.`SES_TITRE` ASC, `T_FORMATIONS`.`FOR_TITRE` ASC 
LIMIT 5
于 2012-11-15T10:53:20.930 回答