Benim veritabanında aşağıdaki tablolar vardır:
thread --- thread_replies --- replies thread --- thread_tags --- tags
thread: id, title, content, created, author_id
thread_tags: id, thread_id, tag_id
tags: id, name
Ben şu kullanarak belirli bir iş parçacığı için etiketleri seçebilirsiniz:
SELECT GROUP_CONCAT(DISTINCT tags.name ORDER BY tags.name DESC SEPARATOR ',') AS tags
FROM tags INNER JOIN thread_tags ON tag_id = tags.id
INNER JOIN thread ON thread_id = thread.id
WHERE thread.id = 20
Ancak ne yapmak istediğiniz tüm konuları seçtiğinizde, ben de her iş parçacığı ile ilgili tüm etiketleri seçmek istiyorum ...
Ben aşağıdaki gibi bir çok boyutlu bir dizi inşa etmek istiyorum:
Array
(
[t_id] => 20
[title] => this is a title
[content] => This is content
[username] => username1
[a_id] => 35
[tags] => tag1, tag2, tag3
)
Ben her iş parçacığı için bu oluşturmak için kullanabileceğiniz ne sql deyimi bilmek istiyorum?
Ben tüm konuları ve bunların ilişkili yazarlarını seçin eğer öyleyse, nasıl ben de her iş parçacığı ile ilişkili etiketleri alabilirsiniz?
Şu anda ben her konu ve yazarı almak için kullanabilirsiniz:
SELECT thread.id AS t_id, thread.title,
thread.content, author.username, author.id AS a_id
FROM thread INNER JOIN author ON thread.author_id = author.id