/ / Zapytanie grupuj według kolumny, a następnie wyeksportuj wiele wierszy jako pojedynczy wiersz - mysql, wordpress, csv, export-to-csv

Zapytanie grupuj według kolumny, a następnie eksportuj wiele wierszy jako pojedynczy wiersz - mysql, wordpress, csv, export-to-csv

Przy użyciu Mysql mogę uruchomić następujące zapytanie

SELECT `meta_value`
FROM wordpress.wp_postmeta
WHERE post_id
IN (SELECT post_id FROM wordpress.wp_postmeta WHERE meta_value = "Tuesday" AND meta_key = "_field_93")
INTO OUTFILE "/tmp/Tuesday.csv"
FIELDS TERMINATED BY "," ESCAPED BY ","

Obecnie otrzymuję następujące dane, w których dane w każdym wierszu są kaskadowane i pogrupowane według post_id na przykład:

post_id = 1112345 (przykład nie w pliku CSV)

,21
,Tuesday
,John Smith
,abc 123

post_id = 1112346 (przykład nie w pliku CSV)

,qrz22
,Tuesday
,Bob Godfrey
,ABC 229986

To, czego potrzebuję, to mieć każdy post_id być linią, w której wszystkie wiersze są rozdzielane CSV na tej linii. na przykład:

post_id = 1112345 (przykład nie w pliku CSV)

,21 ,Tuesday ,John Smith ,abc 123

post_id = 1112346 (przykład nie w pliku CSV)

,qrz22 ,Tuesday ,Bob Godfrey ,ABC 229986

Jestem pewien, że odpowiedź jest wpatrzona we mnie w twarz, ale nie jestem guru SQL i nie mam pojęcia, gdzie się mylę. Zajrzałem do group_concat polecenie, ale za każdym razem, gdy próbuję umieścić to w moim zapytaniu, dostaję błąd.

Byłbym wdzięczny za pomoc, którą każdy mógłby mi w tej sprawie udzielić, i przepraszam, jeśli moja prośba nie ma sensu, znowu nie jestem guru SQL.

Odpowiedzi:

0 dla odpowiedzi № 1

Co powiesz na wyliczenie wartości pól, zwanych inaczej pivotem.

SELECT max(if(meta_key,"...",meta_value,null) as field_one,
max(if(meta_key,"_field_93",meta_value,null) as field_two,
max(if(meta_key,"...",meta_value,null) as field_three,
max(if(meta_key,"...",meta_value,null) as field_four
FROM   wordpress.wp_postmeta
WHERE  post_id
IN (SELECT post_id
FROM   wordpress.wp_postmeta
WHERE  meta_value = "Tuesday"
AND    meta_key = "_field_93")
GROUP BY post_id
INTO OUTFILE "/tmp/Tuesday.csv"
FIELDS TERMINATED BY "," ESCAPED BY ",";