开发者

Question: mysql Subqueries

开发者 https://www.devze.com 2023-01-09 13:22 出处:网络
If I run this query: SELECT `Manga`.`id`, `Manga`.`name` FROM `mangas` AS `Manga` WHERE `Manga`.`id` in

If I run this query:

SELECT `Manga`.`id`, `Manga`.`name` FROM `mangas` AS `Manga` WHERE `Manga`.`id` in 
(
SELECT `manga_id` FROM `mangas_genres` wher开发者_高级运维e `manga_id` = 1
)

My computer does not respond (I just mistype). It can't run this query. Is the above code invalid? Please, help me.

I think it is valid, but it can't run. I don't understand. It sure be MySQL, I run query on MYSQL workbench (not in PHP) my computer be very slower ( while run query) My table mangas and mangas_genres have more than 5000 rows.


That's a valid query, assuming that all table and column names are spelled correctly.

CREATE TABLE mangas_genres (manga_id INT NOT NULL);
INSERT INTO mangas_genres (manga_id) VALUES (1);

CREATE TABLE mangas (id INT NOT NULL, name VARCHAR(100) NOT NULL);
INSERT INTO mangas (id, name) VALUES
(1, 'manga1'),
(2, 'manga2');

SELECT `Manga`.`id`, `Manga`.`name` FROM `mangas` AS `Manga` WHERE `Manga`.`id` in
(
SELECT `manga_id` FROM `mangas_genres` where `manga_id` = 1
)

Result:

id  name
1   manga1

Your problem is somewhere else.


My query is valid but lost many time to run query (>100s on my computer , it cause computer to very slower (not responding)), The solve is index to speed up

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号