错误代码:1054 'where 子句'中的未知列'billId'

Posted

技术标签:

【中文标题】错误代码:1054 \'where 子句\'中的未知列\'billId\'【英文标题】:Error Code: 1054 Unknown column 'billId' in 'where clause'错误代码:1054 'where 子句'中的未知列'billId' 【发布时间】:2020-11-04 16:19:19 【问题描述】:

虽然有很多类似的问题。它与其他人完全不同。而且我无法找到纠正确切错误的方法。这就是为什么在这里发布它。

我正在编写一个查询,我需要使用一个 ID 删除多个表上的条目。

我有estimate_id。我想删除 bill 表还有 bill_details 表。在 bill_details tbl 中存储了 bill_id。所以我写了一个查询来从 bill tbl 中进行选择。但是在 where 子句中使用它时最终出错了。

存储过程在这里:

CREATE DEFINER=`root`@`localhost` PROCEDURE `delete_by_estimation_no`(in_estimation_id int)
BEGIN
SET SQL_SAFE_UPDATES = 0;

select (id)projId from projects WHERE estimation_no=in_estimation_id; 
DELETE FROM projects WHERE estimation_no=in_estimation_id; 

DELETE FROM estimation WHERE id=in_estimation_id; 
DELETE FROM estimation_details WHERE estimation_id=in_estimation_id;

select (id)billId from bill where estimation=in_estimation_id;
DELETE FROM bill WHERE estimation=in_estimation_id; 
DELETE FROM bill_details WHERE bill_id=billId; 

select (id)invoiceId from invoice where estimation=in_estimation_id;
DELETE FROM invoice WHERE estimation_no=in_estimation_id; 
DELETE FROM invoice_details WHERE invoice_id=invoiceId; 
 
select (id)crId from change_request where project_id=projId;
DELETE FROM change_request WHERE project_id=projId; 
DELETE FROM change_request_details WHERE cr_id=crId; 

END

我收到此错误。

错误代码:1054 'where 子句'中的未知列'billId'

[![Bill][1]][1]

【问题讨论】:

您能否添加让我们也知道架构?] 谢谢。使用 bill_id 而不是 billId。 【参考方案1】:

bill_details 中没有 billId 列,但您可以通过查询从两个表中删除

    DELETE bill, bill_details
    FROM bill 
    INNER JOIN bill_details ON bill.id = bill_details.bill_id

(假设连接键是id和bill_id)

【讨论】:

我需要删除整行

以上是关于错误代码:1054 'where 子句'中的未知列'billId'的主要内容,如果未能解决你的问题,请参考以下文章

查询中的错误 (1054):“where 子句”中的未知列“TableValue”

#1054 - MySQL 中“where 子句”中的未知列“proximite”

SQLSTATE [42S22]:找不到列:1054 'where 子句为啥'中的未知列'4'我找不到错误

未找到列:1054“where 子句”中的未知列“MONTH(date)”[重复]

SQLSTATE [42S22]:找不到列:1054 'where 子句'中的未知列'user_id'

SQLSTATE [42S22]:未找到列:1054 'where 子句'中的未知列 'id'(SQL:select * from `songs` where `id` = 5 limit 1)