loone96
loone96

Reputation: 849

Can somebody help me to find the problem? MySQL/sub query

I'm trying to insert a 'rank' data derived by users' point. But every time I insert using sub query, it returns NULL value.

create table rank_info(
rank_num INT,
min_point INT,
max_point INT,
primary key(rank_num)
);



create table user(
    num INT,
    name varchar(45),
    point INT,
    user_rank INT,
    primary key(num),
    foreign key(user_rank) references rank_info(rank_num)
);

    insert into rank_info values (1, 200, 300);
insert into rank_info values (2, 100, 199);
insert into rank_info values (3, 0, 99);
insert into user values(1, 'jake', 150, 
(select rank_num from (
(select rank_num from rank_info, user
 where  user.point between min_point and max_point))
 a ));

<< This is where I'm stuck at. Thank you, always.

Upvotes: 0

Views: 24

Answers (1)

ScaisEdge
ScaisEdge

Reputation: 133360

You should use an update with join (and not an insert )

 update  user  u
 inner join  rank_info  r on u.point between r.min_point and r.max_point
 set u.rank_num = = r.rank_num

Upvotes: 1

Related Questions