我目前正在尝试从我的数据库返回一些东西,但我没有得到我想要的东西。 我有一个返回给我的查询:
[{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 子句并添加了一个连接。
关于mysql - 从mysql中的同一列中选择多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41938794/