回答編集履歴

2

返信があったので追記しました

2024/09/20 09:52

投稿

utm.
utm.

スコア267

test CHANGED
@@ -2,3 +2,13 @@
2
2
  もしかしたらシンプルにjoinだけでできるのかもしれないですが、頭の中だけだとどんな列になるのか想像がつきません。テーブルが別なので無理な気もしますが(nullなら変換するとかをSELECTなどの参照の方で書けば行けるとは思うが)
3
3
 
4
4
  Unionはサブクエリにて行う想定です。
5
+
6
+ 今回の場合どうなるか
7
+ SQLはデータをレコードでしか取れないので、どういうレコードが欲しいのか?を先ず考えて、データの形式(列)で表せるか考えます。パターンが違い物理的に表現不可能なら取得できないデータということになります。
8
+
9
+ この場合、もとのIDという列とtitleという列が必要そうですよね。
10
+ また、1,2の分岐用の仮想的な列も必要そうです。
11
+
12
+ Joinする時にどのような行が必要かをonで指定します。
13
+
14
+ まずはjoinする前のデータをテーブル形式で抽出して見ると良いかと思います

1

回答内容の補足

2024/09/20 07:30

投稿

utm.
utm.

スコア267

test CHANGED
@@ -1,2 +1,4 @@
1
1
  Joinする対象のテーブルに関してunionでteamsとusersを重ねたテーブルを作って、1,3と2,4を持たせるとか1,3は1で2,4は2に変換する分岐とか、まあそんな感じでやれば行けるとは思いますが、ベストかどうかは分かりません。
2
2
  もしかしたらシンプルにjoinだけでできるのかもしれないですが、頭の中だけだとどんな列になるのか想像がつきません。テーブルが別なので無理な気もしますが(nullなら変換するとかをSELECTなどの参照の方で書けば行けるとは思うが)
3
+
4
+ Unionはサブクエリにて行う想定です。