2017-09-18 9 views
0

のすべての問題をエクスポートするクエリ:SonarQube:私は通常、このクエリを実行して、特定のプロジェクトのすべての違反をエクスポートSonarQube 4.5で特定のプロジェクト

XXXXXXは私がしたい興味を持ってプロジェクトの数値IDです
SELECT 
    issues.id, 
    severity as criticality, 
    IFNULL(rules.name, plugin_rule_key) as name, 
    message, 
    projects.name, 
    projects.kee, 
    projects.long_name, 
    line, 
    rules.plugin_rule_key, 
    rules.plugin_name 
    FROM issues 
    LEFT OUTER JOIN projects ON projects.id = issues.component_id 
    LEFT OUTER JOIN rules ON rules.id = issues.rule_id 
WHERE 
    issues.status = 'OPEN' 
    AND projects.enabled = 1 
    AND issues.root_component_id = XXXXXX 

輸出する。 SonarQube 5.6に移動し、上記のクエリはもう機能しません。 データベースは、以前のバージョンとは少し異なっていると私はこのようにクエリを変更してみました:

SELECT 
    issues.id, 
    severity as criticality, 
    IFNULL(rules.name, plugin_rule_key) as name, 
    message, 
    projects.name, 
    projects.kee, 
    projects.long_name, 
    line, 
    rules.plugin_rule_key, 
    rules.plugin_name 
FROM issues 
    INNER JOIN projects ON projects.project_uuid = issues.project_uuid 
    INNER JOIN rules ON rules.id = issues.rule_id 
WHERE 
    issues.status = 'OPEN' 
    AND projects.enabled = 1 
    AND projects.root_id = XXXXXX 
    --AND issues.project_uuid = 'XyzWXyzWXyzWXyzWXyzW' 

クエリが動作しないとメモリのうち、SQLクライアントラン...またissues.project_uuidによるフィルタリングみました同じrusultsと。 私はいくつかのピボットテーブルと計算でExcelシートを作成するので、このようなエクスポートが必要です。 バージョン5.6の正しいクエリは何ですか? ありがとうございます。

+2

これは、あなたがブラックボックスとしてデータベースを扱い、代わりにWebサービスを使用する必要がある唯一の理由の1つです。 –

+0

理想的な世界で私はあなたに同意しますが、同じことをするためにはAPI検索を複数回(500個のオブジェクト制限とページ付けが必要です)呼び出す必要があり、返されるデータにはクエリのようなすべての情報が含まれていません。 –

答えて

0

私は、問題のテーブルを相対プロジェクトに結合する正しい方法を発見しました。 これは今SonarQube 5.6 MySQLデータベースと完璧に動作正しいクエリです:

SELECT issues.id, 
     severity as criticality, 
     IFNULL(rules.name, plugin_rule_key) as name, 
     message, 
     projects.name, 
     projects.kee, 
     projects.long_name, 
     line, 
     rules.plugin_rule_key, 
     rules.plugin_name 
FROM issues 
     INNER JOIN projects ON projects.uuid = issues.component_uuid 
     INNER JOIN rules ON rules.id = issues.rule_id 
WHERE issues.status = 'OPEN' AND projects.enabled = 1 AND projects.root_id = XXXXXX; 
関連する問題