2016-04-05 7 views
1

複数のクエリを1つに簡素化しようとしていますが、何らかの理由で問題が発生しています。私は、別のテーブル内の参照を数えながら、テーブル内の参照カウントを更新したいと思います。現在私が持っているのは、最初のテーブルの_Doc_IDです。 _FilePathを調べて、同じ_FilePathを持つ行の数を数えたいと思います。見つかった番号でRef_Countを更新します。mysql呼び出しを1つの更新に簡略化

表1

| _Doc_ID | Ref_Count | 
| 1 |   | 

表2

| ID | _FilePath | 
| 1 | 123/123 | 
| 2 | 123/123 | 

成果表1

| _Doc_ID | Ref_Count | 
| 1 |  2  | 

SELECT _FilePath AS FilePathResult from database.tableName where _Doc_ID = '1' 

第1、第2のクエリ

SELECT count(*) AS TotalCount from database.tableName where _FilePath = FilePathResult 

Update table1 SET Ref_Count = TotalCount where _Doc_ID = 1 
+0

@sebastianbrosch:回答を再度投稿してください。それは正しかった。 –

答えて

1

UPDATEsub-queryとなります。

Update table1 
SET Ref_Count = 
    (
     SELECT count(*) AS TotalCount from database.tableName 
     where _FilePath = (SELECT _FilePath AS FilePathResult from database.tableName where _Doc_ID = '1') 
    ) 
where _Doc_ID = 1 
関連する問題