2013-02-26 3 views
1

아래 스크립트를 실행하려고하지만 이름 필드에 항상 NULL 값이 표시됩니다.MySQL JOIN이 NULL 필드를 반환합니다.

SELECT u.name AS _user_name, s.name AS _school_name 
FROM fwg_files AS f 
LEFT JOIN users AS u ON u.id = f.user_id 
LEFT JOIN user_profiles AS up ON up.user_id = u.id 
LEFT JOIN school AS s ON s.id = up.profile_value 

문제는 학교 책상 JOIN ON에서 s.id를 선택하려고했는데 NULL 값도 반환합니다.

표 fwg_files

id | user_id 
240 | 414 
241 | 436 

표 사용자

id | name 
414 | Name 1 
436 | Name 2 

user_id | profile_value 
414  | "6" 
436  | "14" 

표 학교

id | name 

6 | School 1 
14 | School 2 
user_profiles

은 데이터와 스키마에 대한 당신이

+1

사용자에서 레코드 각을 제시해주십시오과 테이블을 userprofiles – cja

답변

0

확실하지 고맙지 만 up.profile_value는 "123"와 같은 경우, 당신이 시도 할 수 있습니다 :

SELECT u.name AS _user_name, s.name AS _school_name 
FROM fwg_files AS f 
LEFT JOIN users AS u ON u.id = f.user_id 
LEFT JOIN user_profiles AS up ON up.user_id = u.id 
LEFT JOIN school AS s ON CONCAT('"', s.id, '"') = up.profile_value 
관련 문제