2つのテーブルを結合する必要があります。ここで、seccondテーブルには文字列の最初のテーブルの1つがあります。
例えば
Table1 has ID1, ID2, Lang_id, User, Text.
Table2 has ID_a, User, List_ID2.
さらに、List_ID2
はカンマで区切られているので、すべての場合にそれを取得する必要があります。したがって、それが唯一の数字である場合、または文字列の最初、中央、または最後にある場合。ただし、値を切り捨てないでください。つまり、(10は100ではありません-'10'0)
余分なキッカーはそれLang_id
がの言語でありPlace
、私もそれを分離する必要があります。
私は言語をうまく分離しています、私はID_a
私の結果に入ることができません
すなわち
TABLE 1
ID1 ID2 Lang_id User Text
1 2 1 bob Me
1 2 2 bob Mich
1 2 3 bob Mi
2 1 1 bob You
2 1 2 bob Du
2 1 3 bob usted
3 1 1 tim You
3 1 2 tim Dich
3 1 3 tim le
4 3 1 tim Hello
4 3 2 tim Hallo
4 3 3 tim ihola
TABLE 2
ID_a User List_ID2
100 bob 1, 2
200 tim 1, 3
RESULTS
ID_a ID1 ID2 English German Spanish
100 1 1 You Du usted
100 2 2 Me Mich Mi
200 3 1 You Dich le
200 4 3 Hello Hallo ihola
私のステートメントは次のようになります。
SELECT DISTINCT main.ID1, main.ID2, ID_a
(SELECT Text
FROM table1 AS a
WHERE lang_id = 1
AND main.ID1 = a.ID1
AND main.ID2 = a.ID2) AS English,
(SELECT Text
FROM table1 AS b
WHERE lang_id = 2
AND main.ID1 = b.ID1
AND main.ID2 = b.ID2) AS German,
(SELECT Text
FROM table1 AS c
WHERE lang_id = 3
AND main.ID1 = c.ID1
AND main.ID2 = c.ID2) AS Spanish,
FROM table1 AS main
LEFT OUTER JOIN table2 ON table2.User = main.User
AND (table2.List_ID2 LIKE STR(ID2)
OR table2.List_ID2 LIKE (ID2 + ',%')
OR table2.List_ID2 LIKE ('%,' + ID2 + ',%')
OR table2.List_ID2 LIKE ('%,' + ID2)
最初の部分は正常に機能しています(言語は分離されています)が、table2からIDを取得できません。いくつかの異なる方法を試しましたが、上記はエラーなしで返されますが、NULL値がたくさんあります。