2014-06-10 3 views
0

3 개 테이블에서 동일한 열 이름을 공유하는 데이터를 선택하려고합니다. 쿼리에서 테이블을 함께 결합하는 방법을 모르겠습니다. MySQL이 값에 대해 여러 테이블에서 쿼리하는 중

여기에 지금까지 내 문의 :

SELECT 
    * 
    FROM 
    recipe, recipeingredients, recipesteps 
    WHERE 
    recipe.recipe_id AND recipeingredients.recipe_id AND recipesteps.recipe_id = :recipe 

이것은 단지 각각의 레시피 ID를 일치 만이 아닌 데이터베이스에서 모든 결과를 반환 할 것으로 보인다. 테이블 조인을 수행하는 방법을 잘 모르겠습니다.

도움을 주시면 감사하겠습니다.

+0

는 직교 제품처럼 냄새와 유효하지 않은'WHERE' 절 – potashin

+0

조인에 누락 된 조건 ...이 WHERE 절을 시도하십시오 :'code'recipe.recipe_id = : recipe and ecipeingredients.recipe_id = recipe.recipe_id AND recipesteps.recipe_id = recipe.recipe_id'code' – ForguesR

+0

@Notulysses 예. –

답변

0

당신은 제대로이처럼 가입 조건을 제공해야합니다

SELECT recipe.*, recipeingredients.*, recipesteps.* 
FROM recipe 
JOIN recipeingredients 
USING (recipe_id) 
JOIN recipesteps 
USING (recipe_id) 
WHERE recipesteps.recipe_id = :recipe 

란 것은 첫 번째 행이 같은 recipe_id 두 테이블이다이 recipeingredientsrecipe 테이블에 가입하는 것입니다 않습니다. 그런 다음 동일한 프로세스가 recipesteps 테이블과 반복됩니다.

0

SELECT * 
FROM recipe r 
INNER JOIN recipeingredients ri 
on r.Recipie_ID = RI.Recipie_ID 
INNER JOIN recipesteps rs 
on ri.Recipie_ID = Rs.Recipie_ID 
WHERE 
R.Recipie_ID = :recipie 

... recipie_ID이 테이블을 결합 고유 키입니다 가정 또는 당신의 접근 방식을 사용 :

SELECT * 
FROM recipe, recipeingredients, recipesteps 
WHERE recipe.recipe_id = recipeingredients.recipe_id 
    AND recipeingredients.recipe_id = recipesteps.recipe_id 
    AND recipie.recipie_id = :recipe 
0

이 작동합니다 :

SELECT 
* 
FROM 
recipe, recipeingredients, recipesteps 
WHERE 
recipe.recipe_id = :recipe AND recipeingredients.recipe_id = :recipe AND recipesteps.recipe_id = :recipe 
관련 문제