2013-06-24 5 views
0

У меня есть следующая таблица:Как выбрать из нескольких строк, где и объединить значения столбцов?

CREATE TABLE IF NOT EXISTS `article` (
    `article_id` int(11) NOT NULL, 
    `language_id` int(11) NOT NULL, 
    `category_id` int(11) NOT NULL, 
    `article_title` varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, 
    `article_body` varchar(8192) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, 
    `meta_description` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, 
    `meta_keyword` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, 
    `article_main_image` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, 
    `promote` bit(1) NOT NULL DEFAULT b'0', 
    `created` datetime NOT NULL, 
    `modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    `deleted` bit(1) NOT NULL DEFAULT b'0', 
    `published` bit(1) NOT NULL DEFAULT b'1', 
    `user_id` int(11) NOT NULL, 
    PRIMARY KEY (`article_id`,`language_id`), 
    KEY `article_title` (`article_title`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

lagnuage_id:

Английский = 1

Arabic = 2

русский = 3

Я хотел бы select * where language_id = 1 limit by 10, но присоединиться языковые столбцы в один, если они имеют одинаковые article_id. например:

(1, 1, 0, 'qwq', 'da sdsad as da ds', 'asd sa d', 'as dsadasd as d sa', '', b'0', '2013-06-20 11:01:32', '2013-06-20 08:01:32', b'0', b'1', 0), 
(1, 2, 0, '????????', '?? ??? ??? ??? ???', '?? ??? ??? ? ???? ', '??? ??? ?? ???? ?? ???? ', '', b'0', '2013-06-20 11:01:32', '2013-06-20 08:01:32', b'0', b'1', 0), 
(1, 3, 0, 'rrrrrrrrrrr', 'rrrr', 'rrrrrrrrrrrrrrrrr', 'rrrrrrrrrrrrrrrrrrrrrrrrrr', '', b'0', '2013-06-20 11:01:32', '2013-06-20 08:01:32', b'0', b'1', 0), 

Я хочу, чтобы выбрать строки, как это:

(1, 1-2-3, 0, 'qwq', 'da sdsad as da ds', 'asd sa d', 'as dsadasd as d sa', '', b'0', '2013-06-20 11:01:32', '2013-06-20 08:01:32', b'0', b'1', 0), 

Обратите внимание, как соединяются языковые идентификаторы; Я хочу знать, какие языки доступны для этой статьи.

ответ

0

Использование GROUP BY и GROUP_CONCAT я был в состоянии исправить мой вопрос:

SELECT `article_id` , GROUP_CONCAT( `language_id`) , ..,..,..,.. 
FROM `article` 
GROUP BY `article_id` 
LIMIT 0 , 30