2013-05-10 3 views
0

나는이 두 개의 테이블이있는 경우 :두 테이블에서 어떻게 선택할 수 있습니까?

table_user 
Id name lname 
1 Mark Brown 
2 Martha Fox 

table_score_start: 
user_Id score 
2  5 

table_score_last: 
user_Id score 
1  3 
2  4 

가 어떻게 다음 쿼리 결과를 표시 할 수 있습니까?

아이디 이름 LNAME 점수는 내가

SELECT table_user.Id, table_user.name, table_user.lname, table_score_start.score, 
table_score_last.score FROM table_user, table_score_start, table_score_last 

을 시도 1 마크 브라운 3 2 마사 폭스 5 4

점수 그러나 나는 또한 시도

작동 나던

SELECT table_user.Id, table_user.name, table_user.lname, table_score_start.score, 
table_score_last.score FROM table_user, table_score_start, table_score_last WHERE table_user.Id = table_score_start.user_Id 

모든 기록을 보여주고 싶습니다. 생각

+0

무엇이 오류입니까? 또는 단순히 결과가 비어 있습니까? – powtac

+0

@ antonioj1015 좋은 지지자가 되십시오. 대답을 수락하십시오. –

+0

문제를 해결 했습니까? –

답변

2

은 아래의 쿼리를 시도 table_score_start 및 table_score_last 테이블 테이블 중 하나에없는 것들 또는 두 개의 포함 :

SELECT u.Id, u.name, u.lname, s.score, l.score FROM table_user u, 
table_score_start s, table_score_last l WHERE u.id = s.user_id 
AND u.id = l.user_id 

를 또는 사용하여 조인

SELECT u.Id, u.name, u.lname, s.score, l.score FROM table_user u 
INNER JOIN table_score_start s ON (u.id = s.user_id) 
INNER JOIN table_score_last l ON (u.id = l.user_id) 

당신은 MySQL의에 대한 자세한 내용을보실 수 있습니다 이 문서에 가입 : http://dev.mysql.com/doc/refman/5.0/en/join.html

2
select a.Id, a.name, a.lname, b.score as start_score, c.score as last_score from table_user a 
inner join table_score_start b on (a.Id = b.user_Id) 
inner join table_score_last c on (a.Id = c.userId) 

inner join 또는 left join은 필요에 따라 다릅니다.

0
SELECT `user`.*, `start`.score, `last`.score 
FROM table_user `user`, table_score_start `start`, table_score_last `last` 
WHERE `start`.user_Id = `user`.Id 
AND `last`.user_Id = `user`.Id; 
0

뭔가 트릭을 수행한다고 :

SELECT u.ID, u.name, u.lname, start.score, last.score 
FROM table_user AS u LEFT JOIN table_Score_Start AS Start on u.ID = Start.ID 
LEFT JOIN table_Score_last AS Last on u.id = Last.ID 

내 머리 꼭대기에서 떨어져 있지만 구장에 있어야합니다. 일부 MySQL 구문을 수정해야 할 수도 있습니다. 저는 SQL Server에서 작업했습니다.

0

여러 테이블에 대해 SELECT을 실행하는 경우 이러한 테이블간에 JOIN 조건을 포함시켜야합니다. 다음은 읽을 수있는 곳입니다. JOINS

다음을 시도해보십시오. 테이블에 별칭을 사용하지 마십시오. 코드가 읽기 쉽지만 실행에 영향을 미치지는 않습니다.

SELECT u.Id 
     ,u.name 
     ,u.lname 
     ,ss.score 
     ,sl.score 
FROM table_user u 
INNER JOIN 
     table_score_start ss 
ON  ss.user_ID = u.Id 
INNER JOIN 
     table_score_last sl 
ON  sl.user_ID = u.Id 
0
내가 INNER JOIN를 참조 다른 답변에서

,하지만 당신은 시작 또는 끝 점수 (또는 둘 다)이없는 기록과 같은, 당신이 사용되어야 LEFT JOIN보고 싶어 이후 :

SELECT a.Id, a.name, a.lname, b.score as start_score, c.score as last_score 
FROM table_user a 
LEFT join table_score_start b on (a.Id = b.user_Id) 
LEFT join table_score_last c on (a.Id = c.user_Id) 
관련 문제