这是我第一次寻求帮助。我不确定我做得是否正确,但我的问题是:
表格结构:
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'
并在第二个查询中循环用户朋友的信息:
SELECT * FROM made WHERE p_id IN ('y', 'z')
我基本需要的是users.friends的信息(来自特定的user.user_id(,以确定"made"中是否有一行包含users.friend,这样我就可以输出made.result数据。
我正在使用nodeJS来执行诸如之类的查询
sql.query("SELECT ....... WHERE user_id = ?", user_id, (err, res) => {......
希望我能很好地解释这一点,这对我来说相当复杂
感谢您将来的帮助:(
好吧,根据我的推断,你想要两个表中的数据的并集,对吗?您可以使用内部属性。
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
一个选项是使用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'