为什么我在 View SELECT 查询中收到带有 WHERE 子句的 "Unknown column 'xyz'"?
Why am I receiving "Unknown column 'xyz'" with WHERE clause on View SELECT query?
MySQL数据库(社区)版本:5.6.27,Windows7 Pro x64
我刚刚创建了这个视图:
DELIMITER $$
ALTER ALGORITHM=UNDEFINED DEFINER=`admin`@`%` SQL SECURITY DEFINER VIEW `vw_qb_assembly_component_info` AS (
SELECT
`qb_assembly_components`.`assembly_item_id` AS `assemblyId`,
`ai`.`name` AS `assemblyName`,
`qb_assembly_components`.`component_quantity` AS `componentQuantity`,
`qb_assembly_components`.`component_item_id` AS `item_id`,
`ci`.`name` AS `name`,
`ci`.`item_number_type` AS `item_number_type`,
`ci`.`type` AS `type`
FROM ((`qb_assembly_components`
JOIN `qb_items` `ai`
ON ((`ai`.`item_id` = `qb_assembly_components`.`assembly_item_id`)))
JOIN `qb_items` `ci`
ON ((`ci`.`item_id` = `qb_assembly_components`.`component_item_id`))))$$
DELIMITER ;
我正在尝试在视图中查询具有特定 qb_assembly_components
.assembly_item_id
值的行。我尝试了几种在 WHERE 子句中定义列的变体,但总是收到错误:
Unknown column 'xyz' in 'where clause'
以下是我试过的版本:
WHERE `qb_assembly_components`.`assemblyId` = 'RR-0T056'
WHERE `qb_assembly_components`.`assembly_item_id` = 'RR-0T056'
WHERE `assemblyId` = 'RR-0T056'
我被难住了。我用谷歌搜索了一下,发现一些结果似乎表明使用别名是可行的方法(我在上面 3 个示例中的最后一个示例),但它不起作用。
我做错了什么?
如果您来自 VIEW
vw_qb_assembly_component_info``
select
那么 where 子句应该引用视图名称(而不是原始 table 名称)
WHERE `vw_qb_assembly_component_info`.`assemblyId` = 'RR-0T056'
MySQL数据库(社区)版本:5.6.27,Windows7 Pro x64
我刚刚创建了这个视图:
DELIMITER $$
ALTER ALGORITHM=UNDEFINED DEFINER=`admin`@`%` SQL SECURITY DEFINER VIEW `vw_qb_assembly_component_info` AS (
SELECT
`qb_assembly_components`.`assembly_item_id` AS `assemblyId`,
`ai`.`name` AS `assemblyName`,
`qb_assembly_components`.`component_quantity` AS `componentQuantity`,
`qb_assembly_components`.`component_item_id` AS `item_id`,
`ci`.`name` AS `name`,
`ci`.`item_number_type` AS `item_number_type`,
`ci`.`type` AS `type`
FROM ((`qb_assembly_components`
JOIN `qb_items` `ai`
ON ((`ai`.`item_id` = `qb_assembly_components`.`assembly_item_id`)))
JOIN `qb_items` `ci`
ON ((`ci`.`item_id` = `qb_assembly_components`.`component_item_id`))))$$
DELIMITER ;
我正在尝试在视图中查询具有特定 qb_assembly_components
.assembly_item_id
值的行。我尝试了几种在 WHERE 子句中定义列的变体,但总是收到错误:
Unknown column 'xyz' in 'where clause'
以下是我试过的版本:
WHERE `qb_assembly_components`.`assemblyId` = 'RR-0T056'
WHERE `qb_assembly_components`.`assembly_item_id` = 'RR-0T056'
WHERE `assemblyId` = 'RR-0T056'
我被难住了。我用谷歌搜索了一下,发现一些结果似乎表明使用别名是可行的方法(我在上面 3 个示例中的最后一个示例),但它不起作用。
我做错了什么?
如果您来自 VIEW
vw_qb_assembly_component_info``
那么 where 子句应该引用视图名称(而不是原始 table 名称)
WHERE `vw_qb_assembly_component_info`.`assemblyId` = 'RR-0T056'