제목이 혼란 스럽거나 넣을 방법을 잘 모른다. 여기 내가해야 할 일이있다. 두 테이블, cronjobs 및 cronjob_seeds 있습니다. cronjob이 데이터베이스에 추가되기 전에 존재하는지 확인해야합니다.MySQL : 조인 된 테이블에 여러 개의 결과가있는 경우이 선택 쿼리가 행을 찾지 못하는 이유는 무엇입니까?
cronjobs :
-id- -callback_model- -callback_method-
1 movie_suggestion_model fetch_similar_movies
cronjob_seeds :
이 테이블 고려
-cronjob_id- -seed-
1 seed1
1 seed2
새로운 cronjob에 추가하기 전에를, 나는 똑같은 cronjob를 데이터베이스에 존재하는지 확인해야합니다. 다음 쿼리를 작성했지만 cronjob에 여러 시드가있는 경우 작동하지 않습니다. 씨앗이 하나뿐이라면 효과적이지만, cronjob에 여러 개의 씨앗이있을 때마다 아무것도 반환하지 않습니다.
SELECT `id`
FROM (`cronjobs`)
INNER JOIN `cronjob_seeds` ON `cronjob_seeds`.`cronjob_id` = `cronjobs`.`id`
WHERE `cronjobs`.`callback_model` = 'movie_suggestion_model'
AND `cronjobs`.`callback_method` = 'fetch_similar_movies'
AND `cronjob_seeds`.`seed` = '1'
AND `cronjob_seeds`.`seed` = 10
내가 뭔가 부족합니까? 다른 유형의 조인을 사용해야합니까?
그리고 주제에서 벗어나지 만 콜백 메소드의 매개 변수는 씨앗입니다. 나는 그 이름을 조금 이상합니다.
해결책을 시도해보고 몇 분만 기다리십시오. – qwerty
감사합니다, 잔뜩, 아름답게 일했다! 내가 할 수있을 때 몇 분 안에 받아 들일거야. – qwerty
EXISTS를 사용하여이 쿼리를 약간 빠르게 할 수 있습니다 : 'SELECT EXISTS (SELECT 'ID ...' –