반응형
SQL 값이 없을 때도 행 유지
값이 빠져도 행을 유지하려고 합니다.하지만 도저히 알 수가 없네요.
10.4.14-마리아DB
쿼리 예제:
SELECT
data.name,
am.value AS color
FROM
color_data cd
INNER JOIN color_data am
ON cd.value = am.id
INNER JOIN data
ON cd.id = data.id
WHERE
data.type = "vehicles"
AND data.slug LIKE "%something%"
AND cd.key = "color_id"
AND am.key = "color"
얻는 정보:
----------------------
name | color |
----------------------
car | red
bicycle | blue
원하는 것:
----------------------
name | color |
----------------------
car | red
boat | <-- When this is empty keep the row.
bicycle | blue
따라서 색상의 ID가 없으면 행이 제거됩니다.저는 여전히 그 열을 유지하고 싶습니다.그건 아마 제가 놓치고 있는 아주 기본적인 것일 겁니다.
JOIN을 시작으로 쿼리를 다시 작성해야 합니다.data
,사용하다LEFT JOIN
대신에INNER JOIN
, 그리고 조건을 달았습니다.color
조인 조건의 테이블:
SELECT
data.name,
am.value AS color
FROM
data
LEFT JOIN
color_data cd ON cd.id = data.id AND cd.key = 'color_id'
LEFT JOIN
color_data am ON am.id = cd.value AND am.key = 'color'
WHERE
data.type = 'vehicles'
AND data.slug LIKE '%something%'
사용하다LEFT JOIN
s 모든 행을 유지할 테이블부터 시작합니다.
SELECT data.name, am.value AS color
FROM data
color_data cd LEFT JOIN
ON cd.id = data.id AND
cd.key = 'color_id' LEFT JOIN
color_data am
ON cd.value = am.id AND
am.key = 'color'
WHERE data.type = 'vehicles' AND
data.slug LIKE '%something%';
주의:
data
지금은 1등입니다.FROM
조항은 당신이 그 행들을 유지하기를 원하기 때문입니다.- 필터링 조건:
data
에 있습니다WHERE
절 - 다른 테이블의 필터링 조건이 적합합니다.
ON
절 - 큰따옴표가 아닌 문자열의 SQL 표준입니다.
언급URL : https://stackoverflow.com/questions/66754868/keep-the-row-even-when-there-is-no-value-found-sql
반응형
'programing' 카테고리의 다른 글
페이지에 파일을 드롭할 때 파일 입력 값을 설정하는 방법은 무엇입니까? (0) | 2023.10.25 |
---|---|
Android 완전히 투명한 상태 표시줄? (0) | 2023.10.25 |
MSVC에 대한 __attribute__(형식(printf, 1, 2))? (0) | 2023.10.25 |
SQL Server 2008에서 테이블 설계를 변경할 수 없음 (0) | 2023.10.25 |
WordPress WP_Query - 상위 페이지만 쿼리 (0) | 2023.10.25 |