Застрял с MYSQL, чтобы получить значение из одной таблицы в другую - PullRequest
1 голос
/ 29 апреля 2020

я впервые обращаюсь за помощью. Я не уверен, правильно ли я это делаю, но вот моя проблема:

Структура таблицы:

Table 'users'             Table 'made'
+--+---------+---------+   +--+---------+---------------+
|id|user_id  |friends  |   |id|p_id     |result         |
+--+---------+---------+   +--+---------+---------------+
|1 |x        |["y","z"]|   |1 | y       |some_text_here |
+--+---------+---------+   +--+---------+---------------+

Что я получил до сих пор:

SELECT friends FROM users WHERE user_id = 'x'

И l oop информация о users.friends во втором запросе:

SELECT * FROM made WHERE p_id IN ('y', 'z')

В основном мне нужна информация users.friends (от указанного c user.user_id) до найдите, есть ли в «made» выход из строки, содержащей users.friends, чтобы я мог вывести данные made.result.

Я использую nodeJS для выполнения запроса, например

sql.query("SELECT ....... WHERE user_id = ?", user_id, (err, res) => {......

Надеюсь, я смог бы объяснить это достаточно хорошо, это довольно сложно для меня.

Спасибо за помощь в будущем:)

Ответы [ 2 ]

0 голосов
/ 29 апреля 2020

Один из вариантов - присоединиться, используя функцию JSON json_search() (доступно начиная с MySQL 5.7):

select m.*
from made m
inner join users u on json_search(u.friends, 'one', m.p_id) is not null
where u.user_id = 'x'
0 голосов
/ 29 апреля 2020

Хорошо, из того, что я могу сделать вывод, вы хотите объединение данных из двух таблиц, верно? Вы можете использовать внутреннее свойство.

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

Вы можете увидеть больше здесь: https://www.w3schools.com/sql/sql_join_inner.asp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...