MySQL数据库(社区)版本:5.6.27,Windows 7 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子句中定义列的变体,但总是收到错误:
未知栏' xyz'在' where子句'
以下是我尝试过的版本:
WHERE `qb_assembly_components`.`assemblyId` = 'RR-0T056'
WHERE `qb_assembly_components`.`assembly_item_id` = 'RR-0T056'
WHERE `assemblyId` = 'RR-0T056'
我很难过。我搜索了一下,发现一些似乎建议使用别名的结果是要走的路(我在上面的3个例子中的最后一个例子),但它没有用。
我做错了什么?
答案 0 :(得分:0)
如果您从VIEW
vw_qb_assembly_component_info``中选择
然后where子句应该引用视图名称(而不是原始表名)
WHERE `vw_qb_assembly_component_info`.`assemblyId` = 'RR-0T056'