Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wordpress SQL:pobierz kategorię postów i tagi

Jak zauważono w komentarzach, włączyłem funkcję agregującą, ale bez klauzuli „grupuj według”.

Teraz wydaje się, że to działa (po prostu dodałem GROUP BY linia):

SELECT
    p.id,
    p.post_name,
    c.name,
    GROUP_CONCAT(t.`name`)
FROM wp_posts p
JOIN wp_term_relationships cr
    on (p.`id`=cr.`object_id`)
JOIN wp_term_taxonomy ct
    on (ct.`term_taxonomy_id`=cr.`term_taxonomy_id`
    and ct.`taxonomy`='category')
JOIN wp_terms c on
    (ct.`term_id`=c.`term_id`)
JOIN wp_term_relationships tr
    on (p.`id`=tr.`object_id`)
JOIN wp_term_taxonomy tt
    on (tt.`term_taxonomy_id`=tr.`term_taxonomy_id`
    and tt.`taxonomy`='post_tag')
JOIN wp_terms t
    on (tt.`term_id`=t.`term_id`)
GROUP BY p.id


+---------------+----------+----------------+
| post_id       | category | tags           |
|---------------+----------+----------------+
| 213           | news     | tag1,tag2,tag3 |
+---------------+----------+----------------+
| 216           | whatever | tag2,tag3      |
+---------------+----------+----------------+

Dziękuję Truskawka!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Masowa aktualizacja Sqlalchemy w MySQL działa bardzo wolno

  2. Doctrine Query Language pobierz maks./najnowszy wiersz na grupę

  3. Jak zmienić strefę czasową MySQL w połączeniu z bazą danych za pomocą Javy?

  4. SQL - Jak transponować?

  5. Czy są jakieś pułapki / rzeczy, o których musisz wiedzieć, przechodząc z MyISAM na InnoDB?