我有一个关于为这个问题做一个好的子查询的问题
假设我们有一个表用户和链接。

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是不可组织的。

10-07 17:56