gpt4 book ai didi

mysql - 在存储过程中显示具有不同列的 2 个不同的选择查询

转载 作者:行者123 更新时间:2023-11-29 02:55:09 26 4
gpt4 key购买 nike

select u_id AS user1 from user where u_id = 2;
select u.u_id AS user2 from user u INNER JOIN trip t ON u.u_id = t.u_id WHERE t.u_id2 = 2;

如何在存储过程中同时显示 user1 和 user2?

最佳答案

你需要加入用户表两次,第二次是通过trip.u_id2:

SELECT u.u_id AS user1, u2.u_id as user2
FROM user u
INNER JOIN trip t ON u.u_id = t.u_id
INNER JOIN user u2 ON t.u_id2 = u2.u_id
WHERE t.u_id2 = 2;

请注意,我已经调整了别名以匹配后缀。如果 t.u_id2t.u_id 可以为空,那么您应该用 LEFT 连接替换。

回复:这是最优的吗

由于您的原始查询仅引用用户 ID,因此根本不需要连接到用户表:

SELECT t.u_id AS user1, t.u_id2 as user2
FROM trip t
WHERE t.u_id2 = 2;

但很明显,现在您只能为用户使用 FOREIGN 键,这对最终用户可能没有用。

关于mysql - 在存储过程中显示具有不同列的 2 个不同的选择查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31422322/

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