Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 未找到列:1054未知列-没有输入错误或错误';`&引用;_Mysql_Sql_Database_Cakephp - Fatal编程技术网

Mysql 未找到列:1054未知列-没有输入错误或错误';`&引用;

Mysql 未找到列:1054未知列-没有输入错误或错误';`&引用;,mysql,sql,database,cakephp,Mysql,Sql,Database,Cakephp,我正在使用cakePHP创建一个todo应用程序。CakePHP为您创建查询等。这就是为什么必须没有输入错误 错误: Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Projecttask.projecttasks_name' in 'field list' 查询: SQL Query: SELECT `Itemrequirement`.`itemreq_id`, `Projecttask`.`projecttask

我正在使用cakePHP创建一个todo应用程序。CakePHP为您创建查询等。这就是为什么必须没有输入错误

错误:

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Projecttask.projecttasks_name' in 'field list'
查询:

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中手动尝试了很多东西。

您正在使用
projecttasks
两次

LEFT JOIN `gtd`.`projecttasks` AS `ProjecttaskParent` ...
LEFT JOIN `gtd`.`projecttasks` AS `ProjecttaskChild`  ...
但是对于别名
ProjecttaskParent
ProjecttaskChild
,必须使用别名而不是表名

`ProjecttaskParent`.`projecttasks_name`

您的查询应如下所示(示例中带有
ProjecttaskChild
alias)


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

您的查询应该是:

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\u name
ProjecttaskParent
projecttasks\u name
ProjecttaskChild
projecttasks\u name

没有项目任务 从错误消息中:

“字段列表”中的未知列“Projecttask.projecttasks\u name”

因此有一个表/别名
Projecttask
和一个字段
projecttasks\u name
。除了在查询中:

FROM `gtd`.`itemrequirements` AS `Itemrequirement` 
LEFT JOIN `gtd`.`projecttasks` AS `ProjecttaskParent` ...   
LEFT JOIN `gtd`.`projecttasks` AS `ProjecttaskChild` ...
projecttasks
有两个不同的别名,即问题不是表中不存在字段,而是查询中没有具有该名称/别名的表

您想要的查询可能是:

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

或者使用以确保别名正确

$Itemrequirement->find('all', array(
    'conditions' => array(
        $Itemrequirement->ProjecttaskParent->escapeField('projecttask_name') ...

您是否应该被选中
Projecttaskparent.projecttasks\u name
,因为这是您在查询中给定的别名?谢谢,我不知道您在调用字段时也必须使用别名!随时选择答案:)@JanwillemDooms我很高兴能帮助你。:)我没有使用PHP。很明显,这只是一个SQL错误,显示cakephp代码是不必要的。“我正在使用cakephp创建todo应用程序。cakephp为您创建查询”-如果事实上您没有使用PHP,那么这100%让人困惑,而且问题被标记为
cakephp
(我就是这样发现的)。如果查询确实来自CakePHP,则错误在php代码中,并且。。如果因为没有使用PHP而没有cakephp代码,那么如何显示它?在这么少的单词里有这么多的困惑=)。你就是那个把cakephp和普通php搞混的人。
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
$Itemrequirement->find('all', array(
    'conditions' => array(
        'Projecttask.projecttask_name' ...
$Itemrequirement->find('all', array(
    'conditions' => array(
        'ProjecttaskParent.projecttask_name' ...
$Itemrequirement->find('all', array(
    'conditions' => array(
        $Itemrequirement->ProjecttaskParent->escapeField('projecttask_name') ...