以下のクエリは、私が探している3つの回答のうち2つを示しています。サブクエリに私が代わりにノーmysqlでサブクエリを使用する
の列名isCylのための3つの可能な値を空白にすることができ、はい、いいえ
私は、サブクエリがするための最良の方法であるのかはわからないんnullを取得選択それについては、私はどのように他の状態を照会するか分からない。
スケジュール表には、割り当て時にどのタスクを完了する必要があるかを示す一連の列があります。関連テーブルには、タスクが完了するように割り当てられている場合にタスクの結果が格納されます。だから、特定のタスクがスケジュールされているかどうかをテストする必要があります。もしそうなら、私はタスクの結果が関連テーブルに記録されているかどうかを確認する必要があります。簡潔にするために、私はここに列の1つだけを示しています。
SELECT s.`reckey`,
if(s.cylinders="T",
(select
if(c.areckey is not null,
"yes",
"no"
)
from cylinders c where c.areckey = s.reckey limit 1
)
,""
) as isCyl
from schedule s
where s.assignmentDate between 20161015 and 20161016
order by s.reckey
サブクエリは一致するものが見つからない場合、結果(null)を返さない可能性があります。 – Uueerdo
Plsは、いくつかのサンプルデータ、サンプルデータに基づく予想結果、およびサンプルデータに基づくクエリによって提供される出力を提供します。サブクエリではなく、左結合が必要なことがあります。 – Shadow
私はLEFT JOINも好んでいますが、列名の周りではなくサブクエリの周りにIF()を置くことができます。 – Barmar