从mysql中的同一列中选择多个元素

从mysql中的同一列中选择多个元素,mysql,Mysql,我目前正试图从我的数据库返回一些东西,但我没有得到我想要的东西。 我有一个查询返回以下信息: [{username: 'tupac', age: 20, popularity: 35, city: 'Paris', country: 'France', latitude: 48.8534, longitude: 2.3488, tag_id: 172 }] 但是如果tag_id列中有多个条目呢? 我能退这个吗?如果有3个tag_id,它们将返回3个对象。 那么如果tupac有3个或4个tag_

我目前正试图从我的数据库返回一些东西,但我没有得到我想要的东西。 我有一个查询返回以下信息:

[{username: 'tupac',
age: 20,
popularity: 35,
city: 'Paris',
country: 'France',
latitude: 48.8534,
longitude: 2.3488,
tag_id: 172 }]
但是如果tag_id列中有多个条目呢? 我能退这个吗?如果有3个tag_id,它们将返回3个对象。 那么如果tupac有3个或4个tag_id链接到他,我可以有这样的东西吗

[{username: 'tupac',
age: 20,
popularity: 35,
city: 'Paris',
country: 'France',
latitude: 48.8534,
longitude: 2.3488,
tag_id: 172 
tag_id: 173
tag_id: 175} ]
这是我的实际查询:

SELECT usersinfo.username, usersinfo.age, 
usersinfo.popularity, userlocation.city, userlocation.country, 
userlocation.latitude, userlocation.longitude , user_tags.tag_id

FROM usersinfo, userlocation, user_tags
WHERE usersinfo.sex = "f" 
AND usersinfo.orientation = "s" 
AND usersinfo.username = userlocation.username 
AND usersinfo.username = user_tags.username
AND usersinfo.username != 'natedogg'
我一直在读一些东西,接线员“IN”或“GROUP_CONTACT”都帮不了我。也许我做错了

谢谢你的帮助

试试这个:

SELECT 
    usersinfo.username, 
    usersinfo.age, 
    usersinfo.popularity, 
    userlocation.city, 
    userlocation.country, 
    userlocation.latitude, 
    userlocation.longitude , 
    (select group_concat(user_tags.tag_id)
     from user_tags
     where user_tags.username = usersinfo.username
     group by username) as tag_id
FROM usersinfo
    inner join userlocation on usersinfo.username = userlocation.username 
WHERE usersinfo.sex = "f" 
AND usersinfo.orientation = "s" 
AND usersinfo.username = user_tags.username
AND usersinfo.username != 'natedogg';
请注意,我已更改了您的where子句,并添加了一个联接。

尝试以下操作:

SELECT 
    usersinfo.username, 
    usersinfo.age, 
    usersinfo.popularity, 
    userlocation.city, 
    userlocation.country, 
    userlocation.latitude, 
    userlocation.longitude , 
    (select group_concat(user_tags.tag_id)
     from user_tags
     where user_tags.username = usersinfo.username
     group by username) as tag_id
FROM usersinfo
    inner join userlocation on usersinfo.username = userlocation.username 
WHERE usersinfo.sex = "f" 
AND usersinfo.orientation = "s" 
AND usersinfo.username = user_tags.username
AND usersinfo.username != 'natedogg';

请注意,我已更改了where子句,并添加了一个联接。

在TagID列中是否有某种分隔符,如值之间的逗号或分号?是否可以发布数据架构?用户标签表和用户信息之间是否有相关字段?用户标签指的是什么?这些标记是否保存在一个单独的表中?@Sepultura是的,基本上我创建了一个表,将标记保存为“字符串”并给它们一个id,另一个表可以通过标记id引用。@DanielG否我没有任何东西。TagID列中是否有某种分隔符,比如值之间的逗号或分号?你能发布你的数据模式吗?用户标签表和用户信息之间是否有相关字段?用户标签指的是什么?这些标记是否保存在单独的表中?@Sepultura是的,基本上我创建了一个表,将标记保存为“字符串”,并给它们一个id,另一个表可以通过标记id引用。@DanielG不,我没有任何东西。我试过了,它在where子句中返回未知列“user\u tags.username”此列是否存在?当然。我的表user\u标记有:id、tag\u id和username我试过了,它在where子句中返回未知列user\u tags.username该列存在吗?当然。我的表格用户标签有:id、标签id和用户名