2016-04-18 6 views
0

を働いていません。それはエラーですか?句があいまいである、あなたはあなたが欲しいフィールドをPROJECT_ID正確にRDBMSを伝える必要があります第二、クエリのWHERE句でごすなわち加入WHERE project_pm.Project_Id like '%$categ%'PHPクエリは、これが機能している

+4

まず、コードを適切に書式設定/インデントすることです。あなたはそのような問題を見つけるかもしれません。 –

+1

これはPHPと何が関係がありますか?それはMySQLまたはSQL Serverですか? –

+1

2番目のクエリで生成されたエラーメッセージまたは予期しない動作が分類されていますか? – Shadow

答えて

0

Project_Idフィルタリングするには、複数のテーブルにProject_Idフィールドが含まれているためproject_pm.Project_Id

0

で行われているとして、それを定義する必要がどこにある

0

不要な括弧をすべて取り除くことから始めて、書式設定とエイリアスはかなり単純なクエリを明らかにします。

select * --This should really be the columns you actually need instead of all of them 
from defect d 
join project_testcase ptc on d.Test_Id = ptc.Test_Id 
join testcase t on d.Test_Id = t.Test_Id 
join project_pm p on ptc.Project_Id = p.Project_Id 
join employee e on e.Emp_id = p.Emp_id 
where p.Project_Id like '%$categ%' 

もちろん、これはProject_Idという名前の列にこのようなテキストがあるのはなぜですか?それは私のプロジェクトIDのようには見えません。また、主要なワイルドカードを使用しているので、非サーベイ可能なクエリがあるので、その列でインデックスシークを実行できなくなります。

1

これをトラブルシューティングするためにまず行うべきことは、SQLフォーマッタに貼り付けることです。これは構文エラーの発見に役立ち、論理エラーの表示に役立ちます。私はfreeformatter.comをお勧めします。

次に、かっこを取り除くことができます。

あなたはそれが複数のテーブルであるため、WHEREでPROJECT_IDを取得するために、しかし明確にするため、私はいつもそれから何が来るのか、テーブルを指定だろうか、テーブルを指定する必要があり

修正。

select 
    * 
from 
    defect 
join 
    project_testcase   
     on defect.Test_Id=project_testcase.Test_Id  
join 
    testcase  
     on defect.Test_Id=testcase.Test_Id  
join 
    project_pm 
     on project_testcase.Project_Id=project_pm.Project_Id  
join 
    employee 
     on employee.Emp_id=project_pm.Emp_id  
where 
    project_testcase.Project_Id like '%$categ%' 
+0

私の回答があなたの問題を解決する助けとなった場合、あなたはそれを受け入れられた答え@AbhinavChanana –

関連する問題