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
Kategori
Computerworld tilbyder specialiserede kurser i database-management

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