我有一个关于为这个问题做一个好的子查询的问题
假设我们有一个表用户和链接。
users
+++++++++
id name
1 name1
2 name2
3 name3
+++++++++
links
+++++++++
id link
1 link1
2 link1
3 link1
+++++++++
假设我有一张这样的关系表
name_links
++++++++++++
uid lid
1 1,3
2 1,2,3
3 2
++++++++++++
我知道这不是最常用的方法。我就这一方法的建议提出了另一个问题。如果你有任何建议这里是链接。
mysql query normal relationship table vs concatenated realtionship table
但是使用这个方案,我无法让查询工作。我提出的问题是:
SELECT link
FROM links
WHERE links.id
IN
(
SELECT lid
FROM name_links
WHERE uid=1
)
我用正确的语法和引号做这件事,但我只得到一行,第一行。例如,使用同一个查询,结果只得到link1。我要找Link1和Link3。
这让我发疯了,我真的需要一些帮助。
谢谢!
最佳答案
SELECT link
FROM name_links
JOIN links
ON FIND_IN_SET(id, lid)
WHERE uid = 1
正如我在answer to your previous question中提到的,
FIND_IN_SET
是不可组织的。