0

非常に単純な 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)));
4

2 に答える 2

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);
于 2012-10-28T01:06:04.877 に答える
0

`not' で列名をエスケープします。

于 2012-10-27T14:09:23.377 に答える