에 가입 나는 다음과 같은 3 개 테이블이 있습니다를 사용하여 값을 위해 왼쪽
users
| id | name | address |
|----+-------+----------+
| 1 | user1 | address1 |
| 2 | user2 | address2 |
locations
| id | user_id | name |
|----+---------+-----------+
| 1 | 1 | location1 |
| 2 | 1 | location2 |
| 3 | 2 | location3 |
orders
| id | user_id | from_id | to_id |
|----+---------+---------+-------+
| 1 | 1 | 1 | 2 |
| 2 | 1 | 1 | 0 |
from_id 또는 to_id 사용자의 주소가이 경우에 사용 된 의미, 0을 가질 수 있습니다. 는 '순진'를 실행
이 테이블에 조인
SELECT u.name uname, fl.location flocation, tl.location tlocation
FROM users u, orders o, locations fl, locations tl
WHERE u.id = o.user_id
AND o.from_id = fl.id
AND o.to_id = tl.id
0 레코드를 표시하지 않습니다
: 내가보고 싶은 것이user1 | location1 | location2
다음 데이터입니다
user1 | location1 | location2
user1 | location1 | address1
mysql을 사용하면 이러한 결과를 보여주기 위해 조인을 확장 할 수 있습니까?
SELECT u.name uname, IF(fl.id, fl.location, u.address) AS flocation, IF(tl.id, tl.location, u.address) AS tlocation
FROM users u
INNER JOIN orders o ON u.id = o.user_id
LEFT JOIN locations fl ON o.from_id = fl.id
LEFT JOIN locations tl ON o.to_id = tl.id;
을 내가 제안을 할 수 있다면, 난 당신이 테이블을 조인하는 방법으로 WHERE 절을 사용하지 않는 것이 좋습니다 것입니다 :
가 큰 응답을 위해 너희들을 감사 반환 할 열 값을 결정하기 위해 SELECT리스트에 조건식을 사용! – Tamir