1
として以下の3つのテーブルがあり、MySQL用の複雑なネストされたSQL文をデバッグする方法は?
table a (eid, COLUMNA, COLUMNB, COLUMNC, COLUMND)
1001,1,1,0,1
1002,1,0,0,0
table b (id, description)
1, ABC
2, BCD
3,CDE
4,DEF
注説明が通常TABLE1列に関連します。これらはuiのチェックボックスなので、uiのdesciption =チェックボックス名です。私の質問がある
table c(eid, groupid)
、私は以下
1001,1
1001,2
1001,4
1002,1
私のクエリがあり、以下のような表3にTABLE1のデータを移行する必要があるが、私は期待通りの結果を得ていません。
SELECT DISTINCT eid, id
FROM (SELECT eid,
CASE
WHEN cola = 1
THEN
(SELECT id
FROM tableb
WHERE description = 'ABC')
WHEN cola = 0
THEN
-1
END
AS coln_a,
CASE
WHEN colb = 1
THEN
(SELECT id
FROM tableb
WHERE description = 'BCD')
WHEN colb = 0
THEN
-1
END
AS coln_b,
CASE
WHEN colc = 1
THEN
(SELECT id
FROM tableb
WHERE description = 'CDE')
WHEN colc = 0
THEN
-1
END
AS coln_c,
CASE
WHEN cold = 1
THEN
(SELECT id
FROM tableb
WHERE description = 'DEF')
WHEN cold = 0
THEN
-1
END
AS coln_d
FROM tablea
WHERE cola = 1 OR colb = 1 OR colc = 1 OR cold= 1) temp_t,
tableb
WHERE coln_a = id OR coln_b = id OR coln_c = id OR coln_d = id
ORDER BY eid, id;
何が間違いですか?
あなたのロジックをよりよく説明できますか? –