2013-05-01 3 views
0

나는 사용자 테이블과 판매 테이블을 가지고 있습니다. sales 테이블에는 사용자 테이블의 id 열에 조인하고자하는 열 user_id가 있습니다. 내 기대 결과는 사용자 테이블의 id 열과 일치하는 user_id를 사용하여 판매 테이블의 모든 행을 가져와 로그인 한 사용자의 정보를 표시 할 수있게하는 것입니다.mysql join은 결과가 아닌 전체 테이블을 반환합니다.

내 질문은 이것이다 :

SELECT * FROM user u JOIN sales s ON (u.id = s.user_id) 

무엇하지만 어떻게 난 그냥 결과로 테이블의 모든 행을 얻을 수있다.

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

+0

쿼리에서 로그인 된 사용자의 ID를 사용하지 않으므로 데이터베이스는 모든 사용자의 데이터를 반환합니다. 일반적으로'WHERE u.id = @ mycurrentuserid'를 끝에 추가하려고합니다. 여기서'@ mycurrentuserid'는 로그인 한 사용자의 ID입니다. –

답변

1

당신은 당신이 테이블 만 사용 사례가 왼쪽 외부 조인을 더 같다 합류하는 현재 SQL에서

SELECT * FROM user u JOIN sales s ON (u.id = s.user_id) 
WHERE u.User = 'someone' 
+0

건배. – devon93

0

처럼 현재 사용자의 행을 필터링 WHERE 절, 뭔가를 추가해야합니다. 이 쿼리를

SELECT column_name(s) 
FROM sales s 
LEFT JOIN user u 
ON u.user_id=s.user_id 
0

당신은 결과의 직교 제품을 만드는하려고하는 쿼리를 사용 . 그래서 테이블의 모든 행을 보여줍니다.

필요에 따라 Inner Join, Left Outer Join 또는 Right Outer Join으로 시도해야합니다.

+0

데카르트 어떻게? 한정어가없는'JOIN'은'INNER JOIN'과 같은 것입니다. –

관련 문제