저는 MySQL에 처음 접했지만 두 가지 일에 개별 솔루션을 찾았습니다. 그들을 결합하는 데 도움이 필요합니다.여러 행을 하나의 행으로 결합 MySQL과 하나의 필드에서 동일한 값으로 두 값을 나누는 쿼리
사용자 및 user_profile 테이블이있는 데이터베이스가 있습니다. 내가 가진 하나의 테이블로 두 테이블에서 데이터를 결합하는 쿼리를 만드는 관리 한 다음
select t1.id,
t1.name,
max(case when t2.`profile_key` = 'profile.address1' then t2.profile_value end) address,
max(case when t2.`profile_key` = 'profile.city' then t2.profile_value end) city,
max(case when t2.`profile_key` = 'profile.postal_code' then t2.profile_value end) postal_code,
max(case when t2.`profile_key` = 'profile.phone' then t2.profile_value end) phone
from users t1
left join user_profiles t2
on t1.id = t2.user_id
group by t1.id, t1.name
나는 또한 이렇게 "이름"과 "성"에 "이름"열을 분할 싶습니다 나는 성으로 정렬 할 수있다. 나는 이것을 다음과 같이 수행 할 수 있습니다 :
SELECT IF(
LOCATE(' ', `name`) > 0,
SUBSTRING(`name`, 1, LOCATE(' ', `name`) - 1),
`name`
) AS memberfirst,
IF(
LOCATE(' ', `name`) > 0,
SUBSTRING(`name`, LOCATE(' ', `name`) + 1),
NULL
) AS memberlast
FROM `users`;
이러한 quires를 하나의 방법으로 결합 할 수 있습니까?
** 정말 고맙습니다 !! ** 나는 ') AS 회원 이름 뒤에'라는 추가 't1.name'을 추가하여 다음과 같은 사실을 확인했습니다. 표시 이름으로 사용할 전체 이름을 가졌습니다. –
또한 profile.address1, profile.city, profile.postal_code 및 profile.phone 열로 출력되는 데이터를 TRIM으로 변환하고 싶습니다. 코드는 다음과 같을 것이라고 생각합니다 : TRIM (BOTH ' "'FROM profile.address1) AS trimmed_profile.address1 FROM'user_profiles ...하지만 위와 통합 될 수 있는지 정확히 알 수는 없습니다 –
TRIM을 둘러 쌀 수 있습니다. 그 중 어떤 것 (예 : ... THEN TRIM (t2.profile_value) END) ... – GDP