두 테이블을 조인 할 때 사용자 테이블에 분기 코드 필드에 아무 것도없는 경우 SQL 쿼리는 분기 코드 만 반환한다는 기준이 있습니다.조건으로 SQL 조인 된 테이블 조회
그러나 사용자 테이블에 분기 코드 상자에 NULL이 있으면 분기 테이블의 모든 분기 코드가 반환됩니다.
아래는 내가 시도한 것이며 작동하지 않지만 필자가 사용하고있는 테이블과 필드에 약간의 성향을 부여해야합니다.
SELECT IF(u.BranchCode IS NOT NULL THEN b.BranchCode ELSE u.BranchCode END) AS BranchCode, b.BranchName, b.BranchAddress1, b.BranchAddress2
FROM users AS u
LEFT JOIN branches AS b ON u.BranchCode = b.BranchCode
WHERE u.Username = '$_SESSION[USERNAME]'
일부 테이블 예 :
사용자
UserName | BranchCode
---------|------------------
bob | NULL
sam | AW3456
dave | NULL
alison | NULL
fred | NULL
지점
BranchCode| BranchName |BranchAddress1 |BranchAddress2
----------|-------------|---------------|-------------------
AQ3459 | Northmore |1 Northmore Rd |Northmore Village
AW3456 | Middleton |28 Main Rd |Middleton Stoney
DE5689 | Western |451 Station Rd |Western
FR3278 | Easterly |12 Acacia Dr |Easterly Estate
그래서 밥이가 BranchCode 정보의 ALL을 반환에 로그인하는 사용자 인 경우, 예를 들어 :
BranchCode| BranchName |BranchAddress1 |BranchAddress2
----------|-------------|---------------|-------------------
AQ3459 | Northmore |1 Northmore Rd |Northmore Village
AW3456 | Middleton |28 Main Rd |Middleton Stoney
DE5689 | Western |451 Station Rd |Western
FR3278 | Easterly |12 Acacia Dr |Easterly Estate
샘이 사용자의 테이블에 지정된 것대로 그의 BranchCode 정보의 조회를 반환에 로그인하는 사용자 인 경우 :
BranchCode| BranchName |BranchAddress1 |BranchAddress2
----------|-------------|---------------|-------------------
AW3456 | Middleton |28 Main Rd |Middleton Stoney
사용자 테이블과 링크되지 않은 분기 테이블에서 모든 데이터를 원하십니까? –
내가 당신의 SQL에 혼란스러워하지 않는다고 말하면 나는 거짓말을합니다. 테이블과 더미 데이터에 대한 간단한 컬럼 설명을 줄 수있는 방법이 있습니까? – Jhecht
@Jhecht - 다시 읽은 후 'LEFT JOIN'/slaps_forehead –