Builder

web application developer blog

MYSQL’de SQL ile sütunları tek satır halinde nasıl birleştiririz?

Bazen MySQL ile çapraz sorgulama yapmak gerekebilir ancak, MySQL henüz bunu desteklemiyor. Bunun yerine, alt tabloya ait satırları, tek sütunda birleştirilmiş olarak kullanmak belki bizi kurtarabilir.

Örnek olarak bir toplu mail programı olan phplist veri tabanını kullanırsak ve Örneğimiz, bir kullanıcının hangi mailleri aldığı sorgusu olursa:

Kullanıcılar Tablosu:
user_user
========
id
email
………

 

Gönderilen Mesajlar Tablosu:
usermessage
==========
messageid
userid
entered
viewed
status
…….

Mesajlar Tablosu:
messsage
==========
id
subject
sent
…….

Bir kullanıcının aldığı mailleri bulmak için kullancağımız SQL ise şu olacaktır

SELECT
`user_user`.`email` ,
(SELECT
GROUP_CONCAT(DISTINCT `message`.`subject` SEPARATOR ";") as received
FROM
`usermessage`
INNER JOIN `message` ON (`usermessage`.`messageid` = `message`.`id`)
WHERE
`usermessage`.`status` = "sent" AND
`usermessage`.`userid` = `user_user`.`id`
) AS received
FROM
user_user

1 comment for “MYSQL’de SQL ile sütunları tek satır halinde nasıl birleştiririz?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir