mysql错误1064创建视图语法

时间:2012-10-27 14:06:54

标签: mysql

我不得不要求互联网上的人通过语法检查一个相当简单的MySQL视图,但我无法弄清楚语法有什么问题。我已经尝试了我能想到的一切,我只是不断收到1064错误而没有特定的错误消息。 tblProjectClient表具有tblClient和tblProject的外键。此视图的目的是获取客户端的完整列表,其中包含一个列,其中列出了当前与之关联的项目数。如果我不使用UNION部分,当没有ProjectClient记录时,我得到一个空列表。有没有人有任何想法?欢呼声。

CREATE VIEW viewClientList AS (
select
  tblClient.strName      AS 'Name',
  (select
     count(*)
   from tblProjectClient
   where (tblProjectClient.intClientID = tblClient.intClientID)) AS 'Projects',
  tblClient.intClientID AS 'ID'
from (tblClient
   join tblProjectClient)) 
   union select 
tblClient.strName as 'Name',
   '0' as 'Projects',
   tblClient.intClientID as 'ID'
   from tblClient
   where (not(tblClient.intClientID 
   in(select intClientID as 'ID' from tblClient JOIN tblProjectClient)));

2 个答案:

答案 0 :(得分:0)

使用“not”转义列名。

答案 1 :(得分:0)

感谢您的帮助,但我找到了一个更简单的解决方案。对于其他想要做类似事情的人来说,这是查询:

CREATE VIEW viewClientList AS (
SELECT
tblClient.strName      AS 'Name',
COUNT(tblProjectClient.intProjectID) AS 'Projects',
tblClient.intClientID AS 'ID'
FROM tblClient LEFT JOIN tblProjectClient ON tblClient.intClientID = tblProjectClient.intClientID);