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?
答案 0 :(得分:1)
您需要两次加入用户表,第二次加入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_id2
或t.u_id
可以为空,那么您应该使用LEFT联接替换。
Re:这是最佳
由于您的原始查询只引用了用户ID,因此根本不需要加入用户表:
SELECT t.u_id AS user1, t.u_id2 as user2
FROM trip t
WHERE t.u_id2 = 2;
但很明显,现在您仅限于用户的FOREIGN密钥,这对最终用户可能没用。