私は2つのテーブルを持っています(質問には関係ありませんが、もっとありますoptionValue
)productStock
各オプション 1、オプション 2、オプション 3 の optionValue テーブルからオプション名を取得したい (以下のクエリは、より意味をなすのに役立つはずです)。
以下は私の試みです。現在のクエリは、すべてのオプションが設定されている場合にのみ機能しますが、オプションが設定されていない場合は null を返します。
SELECT s.option1, n1.name s.optionName1, s.option2, n2.name s.optionName2, s.option3, n3.name s.optionName3 FROM productStock as s INNER JOIN optionValue n1 on s.option1 = v1.optionValueID INNER JOIN optionValue n2 on s.option2 = v2.optionValueID INNER JOIN optionValue n3 on s.option3 = v3.optionValueID WHERE s.productStockID = 1
オプションがテーブルnull
に一致しない場合に機能しない理由は理解していますが、修正方法がわかりません(修正可能な場合)optionValue
IN または COALESCE の使用についていくつかの場所で読みましたが、それらの使用方法がわかりません。