首页 文章

根据连接到MySQL中的第二个表,将一个表中的两行组合在一起

提问于
浏览
-1

你好MySQL中有两个表 . 第一个表称为用户,它具有与表2相关的列ID,称为family . 族表有两列,familyID和userID . 基本上我想要做的是在users表中连接第一个名称列,其中familyID是相同的 .

因此,如果John(userID 1)和Jane(userID 2)的familyID为123,则返回“John和Jane”的结果 .

这是否适用于SQL或我是否需要其他编程语言(如C#)并进行逻辑检查?

更新的信息:用户表:

/栏目信息/

字段类型键


id int(11)PRI
用户名varchar(30)
fName varchar(50)
lName varchar(50)

家庭表:

/栏目信息/

字段类型整理空键


ID int(11)(NULL)NO MUL
userID int(11)(NULL)YES MUL

/索引信息/

表Non_unique Key_name Seq_in_index Column_name


family 1 familyUser 1 userID
家庭1 familyID 1 ID

香港专业教育学院尝试了几个连接,甚至自我加入,但大多数返回数据只是不是我正在寻找,因为它重复所有的名字连接在一起 .

如果您需要任何其他信息,请与我们联系 .

2 回答

  • 0

    我能够通过我能够找到的一些其他帖子here来解决这个问题并进行一些调整 .

    这就是我想出的:

    SELECT
      REPLACE(GROUP_CONCAT(IF(f.id = f.id,u.fname, NULL)), ',', ' & ') AS 'First Name'
    FROM users AS u
    JOIN family AS f 
      ON u.id = f.userid 
    GROUP BY f.id;
    

    感谢您在网站上解决我的问题!

  • 0

    您可以使用INNER JOIN在您的条件中使用族列:

    SELECT users.first_name 
        FROM users 
    INNER JOIN family 
        ON family.userID=users.ID 
    WHERE family.ID=:familyId;
    

    编辑:Soory我是一个PHP人,所以 :familyId 应该替换为你正在搜索的实际 familyID . 连接表时,您还可以使用连接表中的列作为条件,因此使用上述查询仅选择在族表中具有提供的familyID的相应行的结果 .

相关问题