gpt4 book ai didi

mysql - 通过外键获取标签

转载 作者:行者123 更新时间:2023-11-29 13:48:02 25 4
gpt4 key购买 nike

这些是我的 table 。

我的 table 是

用户表

id Name Sex
1 bob 1
2 taro 1
3 can 2

性别表

id  label
1 male
2 female

User.sex是Sex.id的外键

我想要得到的是这样的

姓名性别鲍勃男芋头女可以是女的吗

$query = $em->createQuery(
SELECT a,id,a.sex
FROM UserBundle:User a)

它说

[Semantical Error] line 0, col 97 near 'sex': Error: Invalid PathExpression. Must be a StateFieldPathExpression

我想 Identity 可以帮助解决这个问题。所以我尝试了诸如

$query = $em->createQuery(
SELECT a,id,IDENTITY(a.sex) AS sex
FROM UserBundle:User a)

$user = $query->getResult();
$user[0]['sex'] //

它显示“1”(id),但我想显示标签名称

请给一些提示。

非常感谢

最佳答案

在 SQL 中完成此任务的规范方法是使用子查询。一些效果:

Select u.name s.label
From user u, sex s
where s.ID in (Select sex
from u
where u.id = 1);

将为您提供任何带有性别标签的用户记录。因此您需要以运行子查询的方式修改准备好的语句。

对于结果集中的多个记录,您可以考虑使用内部联接来编写 SQL 语句。

Select u.name s.label
from user u inner join sex s
on u.sex = s.id;

将为您提供一组匹配的每个用户的姓名及其性别标签。

看起来您正在使用类似脚本语言预准备语句功能的东西(是 php 吗?),因此请务必仔细阅读您的语言语法,以正确设置预准备语句,以避免恶意用户的注入(inject)攻击.

关于mysql - 通过外键获取标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17122659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com