SQL で 2 つの select ステートメントの結果を結合する方法はありますか? (ユニオン演算子と同様に - ただし、ユニオンは同じ数とタイプの列に対してのみ機能します)
私は何かをしたい
SELECT * FROM JOBS j
UNION
SELECT COUNT(fj.Id_Filter) FROM JOBS j LEFT JOIN FILTER_JOBS fj ON j.Id=fj.Id_Job
ただし、UNIONでは機能しません
すべてのselect
ステートメントの列数が同じである必要があります。null
たとえば、値の列にエイリアスを追加することでそれを行うことができます。
SELECT cast(null as int) as cnt,col1,col2 FROM JOBS j
UNION
SELECT COUNT(fj.Id_Filter),null,null FROM JOBS j LEFT JOIN FILTER_JOBS fj ON j.Id=fj.Id_Job
キャスト/変換を使用して、最初の選択ステートメントにエイリアスを配置する必要があります。2 番目のステートメントには、1 番目と同じ数の列を含める必要がありますnull
。
編集:
SELECT cast(null as int) as cnt,j.* FROM JOBS j
UNION
SELECT COUNT(fj.Id_Filter),j.* FROM JOBS j LEFT JOIN FILTER_JOBS fj ON j.Id=fj.Id_Job