programing

다른 열에 대한 MySql SELECT 조합?

css3 2023. 11. 1. 22:31

다른 열에 대한 MySql SELECT 조합?

썸네일 파일이 첨부된 파일을 선택하는 선택 쿼리가 있고 썸네일이 첨부되지 않은 파일도 받아야 합니다.

현재 sql 쿼리는

SELECT   node.title, node.nid, files.fid, files.filepath, 
         content_type_mobile_event.field_date_value, 
         content_type_mobile_event.field_movie_shorts_value, 
         content_type_mobile_event.field_director_value, 
         content_type_mobile_event.field_length_value, 
         content_type_mobile_event.field_movie_type_value, 
         content_type_mobile_event.field_year_value, 
         content_type_mobile_event.field_event_type_value, 
         content_type_mobile_event.field_movie_location_value, 
         content_type_mobile_event.field_movie_desc_value, 
         content_type_mobile_event.field_movie_id_value, 
         content_type_mobile_event.field_movie_thumb_fid, 
         content_type_mobile_event.field_movie_trailer_url 
FROM     node, content_type_mobile_event, files 
WHERE    node.nid=content_type_mobile_event.nid AND 
         content_type_mobile_event.field_movie_thumb_fid=files.fid 
ORDER BY content_type_mobile_event.field_date_value ASC

저도 필요합니다.

SELECT   node.title, node.nid, content_type_mobile_event.field_date_value, 
         content_type_mobile_event.field_movie_shorts_value, 
         content_type_mobile_event.field_director_value, 
         content_type_mobile_event.field_length_value, 
         content_type_mobile_event.field_movie_type_value, 
         content_type_mobile_event.field_year_value, 
         content_type_mobile_event.field_event_type_value, 
         content_type_mobile_event.field_movie_location_value, 
         content_type_mobile_event.field_movie_desc_value, 
         content_type_mobile_event.field_movie_id_value, 
         content_type_mobile_event.field_movie_thumb_fid, 
         content_type_mobile_event.field_movie_trailer_url 
FROM     node, content_type_mobile_event 
WHERE    node.nid=content_type_mobile_event.nid AND
         content_type_mobile_event.field_movie_thumb_fid!=1 
ORDER BY content_type_mobile_event.field_date_value ASC

저는 보통은 그냥.

(
SELECT   node.title, node.nid, files.fid, files.filepath, 
         content_type_mobile_event.field_date_value, 
         content_type_mobile_event.field_movie_shorts_value, 
         content_type_mobile_event.field_director_value, 
         content_type_mobile_event.field_length_value, 
         content_type_mobile_event.field_movie_type_value, 
         content_type_mobile_event.field_year_value, 
         content_type_mobile_event.field_event_type_value, 
         content_type_mobile_event.field_movie_location_value, 
         content_type_mobile_event.field_movie_desc_value, 
         content_type_mobile_event.field_movie_id_value, 
         content_type_mobile_event.field_movie_thumb_fid, 
         content_type_mobile_event.field_movie_trailer_url 
FROM     node, content_type_mobile_event, files 
WHERE    node.nid=content_type_mobile_event.nid AND 
         content_type_mobile_event.field_movie_thumb_fid=files.fid 
ORDER BY content_type_mobile_event.field_date_value ASC
)
UNION
(
SELECT   node.title, node.nid, content_type_mobile_event.field_date_value, 
         content_type_mobile_event.field_movie_shorts_value, 
         content_type_mobile_event.field_director_value, 
         content_type_mobile_event.field_length_value, 
         content_type_mobile_event.field_movie_type_value, 
         content_type_mobile_event.field_year_value, 
         content_type_mobile_event.field_event_type_value, 
         content_type_mobile_event.field_movie_location_value, 
         content_type_mobile_event.field_movie_desc_value, 
         content_type_mobile_event.field_movie_id_value, 
         content_type_mobile_event.field_movie_thumb_fid, 
         content_type_mobile_event.field_movie_trailer_url 
FROM     node, content_type_mobile_event 
WHERE    node.nid=content_type_mobile_event.nid AND 
         content_type_mobile_event.field_movie_thumb_fid!=1 
ORDER BY content_type_mobile_event.field_date_value ASC
)

하지만 문제는 두 번째 열은 파일을 제외하고 다른 열 집합을 가지고 있다는 것입니다.* 일부)

나는 이것을 어떻게 하는지 평생 알 수가 없습니다.

서로 다른 의미를 가진 분야가 있다면, 같은 위치에서 반납할 수도 없고 해서도 안 됩니다.그러나 다음과 같이 필드에 null을 추가하여 '공백 채우기'를 수행할 수 있습니다.

select id, name, date, null as userid, 'A' as recordtype from table1
union all
select id, name, null /*as date*/, userid, 'B' as recordtype from table2 

첫 번째 선택에서 null에 대한 별칭을 제공할 수 있습니다.명확하게 하기 위해 두 번째 선택 항목에서 별칭을 추가할 수 있지만 사용되지 않습니다.레코드 유형을 나중에 구별하는 데 사용할 수 있는 상수 값을 사용할 수도 있습니다.

선택 A에 열이 없으면 null 값을 사용합니다.

table A (colA, ColB, ColC)

table B (colA, ColD, ColE)

select colA, ColB, ColC, null, null from table A
union
select colA, null, null, colD, colE from table B

일치하는 각 열이 동일한 데이터 유형인지 확인해야 합니다.

칼럼을 가짜로 만들어 조합을 만들 수 있습니다.

예를 들면

   select x, y from A
     union 
   select z, null from B

언급URL : https://stackoverflow.com/questions/7407864/mysql-select-union-for-different-columns