首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未找到的列: 1054个未知列-没有排字,也没有错误`“

未找到的列: 1054个未知列-没有排字,也没有错误`“
EN

Stack Overflow用户
提问于 2013-09-19 10:26:20
回答 3查看 907关注 0票数 2

我正在使用cakePHP创建一个todo应用程序。CakePHP为您创建查询等。这就是为什么不存在错误。

错误:

代码语言:javascript
运行
复制
Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Projecttask.projecttasks_name' in 'field list'

查询:

代码语言:javascript
运行
复制
SQL Query: SELECT `Itemrequirement`.`itemreq_id`, `Projecttask`.`projecttasks_name` 
FROM `gtd`.`itemrequirements` AS `Itemrequirement` 
LEFT JOIN `gtd`.`projecttasks` AS `ProjecttaskParent` ON (`Itemrequirement`.`itemreqs_rel_projectparents` = `ProjecttaskParent`.`projecttasks_id`)    
LEFT JOIN `gtd`.`projecttasks` AS `ProjecttaskChild` ON (`Itemrequirement`.`itemreqs_rel_projectchilds` = `ProjecttaskChild`.`projecttasks_id`) 
WHERE 1 = 1 
ORDER BY `Itemrequirement`.`itemreq_id` asc LIMIT 10000

数据库:

我变得越来越不懂了,因为我已经用phpmyadmin手动尝试了很多东西。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-19 10:29:06

您正在使用projecttasks两次

代码语言:javascript
运行
复制
LEFT JOIN `gtd`.`projecttasks` AS `ProjecttaskParent` ...
LEFT JOIN `gtd`.`projecttasks` AS `ProjecttaskChild`  ...

但是使用别名ProjecttaskParentProjecttaskChild,所以您必须使用别名而不是表名。

代码语言:javascript
运行
复制
`ProjecttaskParent`.`projecttasks_name`

代码语言:javascript
运行
复制
`ProjecttaskChild`.`projecttasks_name`

查询应该如下所示(示例中使用ProjecttaskChild别名)

代码语言:javascript
运行
复制
SELECT `Itemrequirement`.`itemreq_id`, `ProjecttaskChild`.`projecttasks_name` 
FROM `gtd`.`itemrequirements` AS `Itemrequirement` 
LEFT JOIN `gtd`.`projecttasks` AS `ProjecttaskParent` ON (`Itemrequirement`.`itemreqs_rel_projectparents` = `ProjecttaskParent`.`projecttasks_id`)    
LEFT JOIN `gtd`.`projecttasks` AS `ProjecttaskChild` ON (`Itemrequirement`.`itemreqs_rel_projectchilds` = `ProjecttaskChild`.`projecttasks_id`) 
WHERE 1 = 1 
ORDER BY `Itemrequirement`.`itemreq_id` asc LIMIT 10000
票数 1
EN

Stack Overflow用户

发布于 2013-09-19 10:30:46

您正在从数据库名ProjectTask中选择,并且使用别名(ProjectTaskParent和ProjectTaskChild)。

您的查询应该是:

代码语言:javascript
运行
复制
SELECT `Itemrequirement`.`itemreq_id`, `ProjecttaskParent`.`projecttasks_name` FROM `gtd`.`itemrequirements` AS `Itemrequirement` LEFT JOIN `gtd`.`projecttasks` AS `ProjecttaskParent` ON (`Itemrequirement`.`itemreqs_rel_projectparents` = `ProjecttaskParent`.`projecttasks_id`) LEFT JOIN `gtd`.`projecttasks` AS `ProjecttaskChild` ON (`Itemrequirement`.`itemreqs_rel_projectchilds` = `ProjecttaskChild`.`projecttasks_id`) WHERE 1 = 1 ORDER BY `Itemrequirement`.`itemreq_id` asc LIMIT 10000

Projecttask.projecttasks_name改为ProjecttaskParent.projecttasks_nameProjecttaskChild.projecttasks_name

票数 0
EN

Stack Overflow用户

发布于 2013-09-19 10:33:09

没有投影

在错误消息中:

“字段列表”中的未知列“Projecttask.projecttasks_name”

所以有一个表/别名Projecttask和一个字段projecttasks_name。除查询外:

代码语言:javascript
运行
复制
FROM `gtd`.`itemrequirements` AS `Itemrequirement` 
LEFT JOIN `gtd`.`projecttasks` AS `ProjecttaskParent` ...   
LEFT JOIN `gtd`.`projecttasks` AS `ProjecttaskChild` ...

projecttasks有两个不同的别名,即问题不是表中不存在字段,而是查询中没有具有该名称/别名的表。

您可能想要的查询是:

代码语言:javascript
运行
复制
SELECT 
    `Itemrequirement`.`itemreq_id`, 
    `ProjecttaskParent`.`projecttasks_name` # <- alias updated
FROM 
    `gtd`.`itemrequirements` AS `Itemrequirement` 
LEFT JOIN 
    `gtd`.`projecttasks` AS `ProjecttaskParent` ON (...)    
LEFT JOIN 
    `gtd`.`projecttasks` AS `ProjecttaskChild` ON (...) 
WHERE 
    1 = 1 
ORDER BY 
    `Itemrequirement`.`itemreq_id` asc 
LIMIT 10000

PHP代码?

查询的代码未显示,因此需要更改

代码语言:javascript
运行
复制
$Itemrequirement->find('all', array(
    'conditions' => array(
        'Projecttask.projecttask_name' ...

代码语言:javascript
运行
复制
$Itemrequirement->find('all', array(
    'conditions' => array(
        'ProjecttaskParent.projecttask_name' ...

或者使用escapeField确保别名是正确的

代码语言:javascript
运行
复制
$Itemrequirement->find('all', array(
    'conditions' => array(
        $Itemrequirement->ProjecttaskParent->escapeField('projecttask_name') ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18892169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档