Avatar billede totalpc Seniormester
29. marts 2017 - 11:45 Der er 3 kommentarer

Select som flere kolonner fra samme kollonne

Ja jeg ved ikke om det svarer helt til overskriften, men jeg har en tabel der er opbygget således:

Post_id - meta_key - meta_value

321 - _field_56 - Børge
321 - _field_63 - Hansen

Så vil jeg gerne kunne hente mine data ud hvor post_id = 321
Men så vil jeg gerne have hentet meta_value ud hvor meta_key = _field_56 som fornavn, og meta_value ud hvor meta_key = _field_63 som efternavn
og herefter kan der kommer flere værdier.

Hvordan hulen kringler jeg den?
Avatar billede Rune1983 Ekspert
29. marts 2017 - 12:56 #1
Noget ala dette?
Utestet.

SELECT CONCAT(fornavn.meta_value,' ',efternavn.meta_value) AS 'SamletNavn'
FROM tabelmeddata fornavn

LEFT JOIN tabelmeddata efternavn
ON efternavn.Post_id = fornavn.Post_id
AND efternavn.meta_key = '_field_63'

WHERE fornavn.Post_id = '321'
AND fornavn.meta_key = '_field_56'
Avatar billede acore Ekspert
29. marts 2017 - 13:12 #2
Eller

SELECT e.Post_id AS Post_id, fornavn, efternavn FROM
(
  SELECT Post_id, meta_value AS fornavn FROM tabel WHERE Post_id = 321 AND meta_key = '_field_56'
) AS f
JOIN
(
  SELECT Post_id, meta_value AS efternavn FROM tabel WHERE Post_id = 321 AND meta_key = '_field_63'
) AS e
USING (Post_id)

Den virker ikke, hvis der ikke er noget fornavn men er et efternavn. Det kan fixes, men da OUTER JOIN ikke er implementeret i mysql bliver det lidt bøvlet.
Avatar billede totalpc Seniormester
29. marts 2017 - 14:43 #3
Inspireret af jer og andre søgninger løste jeg det således:

select A.post_id, A.Navn, B.Team, C.Antal
from
(SELECT post_id, meta_value AS Navn FROM wp_postmeta WHERE post_id = 321 AND meta_key = '_field_54') AS A
,(SELECT post_id, meta_value AS Team FROM wp_postmeta WHERE post_id = 321 AND meta_key = '_field_63') AS B
,(SELECT post_id, meta_value AS Antal FROM wp_postmeta WHERE post_id = 321 AND meta_key = '_field_64') AS C
WHERE
A.post_id = B.post_id
AND A.post_id = C.post_id
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester