你好我在MySQL中有两个表。第一个表称为用户,它具有与表2相关的列ID,称为family。族表有两列,familyID和userID。基本上我想要做的是连接users表中的第一个名称列,其中familyID是相同的。
因此,如果John(userID 1)和Jane(userID 2)的familyID为123,则返回“John和Jane”的结果。
这是否适用于SQL或我是否需要其他编程语言(如C#)并进行逻辑检查?
更新信息: 用户表:
字段类型键
----------------- ----------- ------
id int(11)PRI
username 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
我已经尝试了几个连接,甚至是一个自我加入,但是大部分都返回数据而不是我正在寻找的,因为它重复了所有名字连接在一起。
如果您需要任何其他信息,请与我们联系。
答案 0 :(得分: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的相应行的结果。
答案 1 :(得分: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;
感谢您在网站上解决我的问题!