私は3つのテーブルからデータにアクセスするクエリを持っている:テーブルは次のようになり特定の行が特定の条件を満たすクエリ内のすべての行を選択するにはどうすればよいですか?
SELECT fg.factGroupName, mc.CI, mt.Config
FROM MetricTypes mt
INNER JOIN MetricCollection mc ON mt.TypeId = mc.MetricType
INNER JOIN factGroup fg ON fg.factGroupId = mc.Factgroup
WHERE mt.ToolName = 2 AND mt.TypeName = 'inputs' AND mt.Deploy = 'Y' AND mc.Deploy = 'Y';
:どのように
|-------------|--------------|--------------|
|factGroupName| CI | Config |
|-------------|--------------|--------------|
| test_servers| alpha | foo |
|-------------|--------------|--------------|
:
factGroup
|-------------|--------------|
|factGroupId |factGroupName |
|-------------|--------------|
| 20 | test_servers |
| 21 | prod_servers |
|-------------|--------------|
MetricTypes
|-------------|--------------|--------------|------------|-----------|
|TypeId |TypeName |ToolName |Config |Deploy |
|-------------|--------------|--------------|------------|-----------|
| 10 | inputs | 2 | foo | Y |
| 11 | inputs | 2 | bar | |
| 12 | outputs | 4 | giggle | |
| 13 | inbetween | 6 | biz | |
|-------------|--------------|--------------|------------|-----------|
MetricCollection
|-------------|--------------|--------------|------------|-----------|
|MetricId |Factgroup |MetricType |CI |Deploy |
|-------------|--------------|--------------|------------|-----------|
| 1 | 20 | 10 | alpha | Y |
| 2 | 20 | 11 | beta | |
| 3 | 20 | 12 | gamma | |
| 4 | 21 | 13 | theta | |
|-------------|--------------|--------------|------------|-----------|
照会の出力は次のようになりますすべてのCI
とConfig
のフィールドを特定のに反映させるためにクエリを調整しますか、Deploy
フィールドにY
フラグを持つものだけでなく、明確にするために
|-------------|--------------|--------------|
|factGroupName| CI | Config |
|-------------|--------------|--------------|
| test_servers| alpha | foo |
| test_servers| beta | bar |
|-------------|--------------|--------------|
::他の言葉で、私は私の出力は次のようになりしたいのですが私は2つの展開の分野で「Y」のフラグが存在するかどうかを確認するための場所で条件を維持したいですこのクエリに関連付けられたスクリプトは、そのフラグをトリガとして追加の作業を実行するためです。
何? – Mureinik
このクエリが存在するスクリプトは、追加作業を実行するためのトリガとして "Y"フラグを使用します。 "Y"が存在しない場合、スクリプトは次のスケジュールされた繰り返しまでスリープ状態になります。 –
私は分かりません。 'Deploy'のすべての値に対して結果が必要な場合は、' WHERE'節で「Y」レコードをフィルタリングすることはできません。あなたのスクリプトが 'Deploy'の値を知る必要があれば、それを' SELECT'節に含めます。 – Jerrad