Я пытаюсь получить значение ячейки из другой таблицы (UserTable), для которой столбец ячейки указан в исходной таблице (DataTable).Значение ячейки будет использоваться для вычисления оценки, которая затем будет определять порядок результатов запроса.
UserTable:
+--------+------+------+------+
| userid | c1 | c2 | c3 |
+--------+------+------+------+
| id1 | 0 | 1 | 1 |
| id2 | 0 | 0 | 1 |
| id3 | 1 | 0 | 0 |
| id4 | 1 | 1 | 0 |
+--------+------+------+------+
DataTable:
+--------+------+------+------+
| id | ColA | ColB | ColC |
+--------+------+------+------+
| 1 | A | B | c1 |
| 2 | D | E | c3 |
| 3 | G | H | c2 |
| 4 | J | K | c3 |
+--------+------+------+------+
Мой текущий, не работающий запрос:
SELECT *,
(SELECT DataTable.ColC
FROM UserTable
WHERE UserTable.userid = 'some_user_id') AS score
FROM DataTable
ORDER BY score DESC
Но при этом не выбирается соответствующий столбец в UserTable, а вместо этого возвращается строковое значение, содержащееся в ColC.
Ожидаемый результат: если для параметра some_user_id установлено, например, значение id2.Ожидаемый результат будет:
+--------+------+------+------+------+
| id | ColA | ColB | ColC | score|
+--------+------+------+------+------+
| 2 | D | E | c3 | 1 |
| 4 | J | K | c3 | 1 |
| 1 | A | B | c1 | 0 |
| 3 | G | H | c2 | 0 |
+--------+------+------+------+------+
, где столбец оценки - это просто поиск значения из пользовательской таблицы.
Возможно ли решить эту проблему?