如何在 mysql 中制作带有验证和显示字段的存储过程?

问题描述 投票:0回答:2

我想用fk_user和iduser_selected的where显示表user和favorites之间相关的字段,如果它们不相关,则只有用户字段的那些。

fk user 来自 table id user,id_selected 来自 selected user

那怎么办?

桌子 用户

id |name  |age |nickname
1  |Carla |23  |carr
2  |andre |24  |andd
3  |jorge |23  |jorgg
4  |gabri |31  |gab
5  |elena |19  |ele

桌子 最爱

favoritespk | fkuser | iduser_selected | idstate_favorite
1           |   1    | 2              | 1
2           |   1    | 3              | 0
3           |   2    | 1              | 1
mysql
2个回答
0
投票
SELECT *
FROM user A, favorites B
WHERE A.fk_user (+) = B.iduser_selected;

0
投票

只是给你一个想法。这个存储过程以

userId
为参数。

CREATE PROCEDURE get_user_and_favorites(IN `user_id` INT)
BEGIN
    SELECT *
    FROM user u
    LEFT JOIN favorites f ON u.id = f.fkuser AND f.iduser_selected = user_id
    WHERE u.id = user_id OR f.fkuser = user_id;
END 
© www.soinside.com 2019 - 2024. All rights reserved.