データベースにいくつかのテーブルがあり、いくつかのテーブルからいくつかの列を選択したいのですが、これで問題ありません。ここで、3番目のテーブルがあり、このテーブルには異なるテキスト値を持つ列がありますが、たとえば、次のように、異なるユーザーの同じ少数の「text_values」があります。
table3
row userid text_value value
1 user1 text1 value1
2 user1 text2 value2
3 user2 text1 value3
4 user3 text1 value4
...
ここで、Table1からINFO1とINFO2を取得し、Table2からINFO3とINFO4を取得しますが、text_value = text1であるTable3からすべての値を取得し、これをINFO5で5番目の列にし、次に、text_valueであるTable3から値を取得します。 = text2とし、これをINFO6の6番目の列にします。
次のクエリがあります。INFO5列のみが必要な場合は正常に機能します。
SELECT Table1.INFO1, Table1.userid , Table2.INFO2,
Table1.INFO3, Table2.INFO4,
Table3.value AS INFO5
FROM Table1 LEFT OUTER JOIN Table2 ON Table1.userid = Table2.userid
LEFT OUTER JOIN Table3 ON Table1.userid = Table3.userid
WHERE Table3.text_value = 'text1'
ただし、同じtable3 VALUE列の値を使用して別の列を作成したいのですが、TEXT_VALUE ='text2'の場合(「フィルタリング」するテキストがいくつかあるため、これは「text3」、「text4」にも当てはまります) 。
クエリを次のように変更すると、機能しません。
SELECT Table1.INFO1, Table1.userid , Table2.INFO2,
Table1.INFO3, Table2.INFO4,
Table3.value AS INFO5 WHERE Table3.text_value = 'text1'
Table3.value AS INFO6 WHERE Table3.text_value = 'text2'
FROM Table1 LEFT OUTER JOIN Table2 ON Table1.userid = Table2.userid
LEFT OUTER JOIN Table3 ON Table1.userid = Table3.userid
任意のガイダンスをいただければ幸いです。