2013-04-24 5 views
5

У меня есть данные в моей базе данных, как это:MySQL сравнить одинаковые значения в два столбца

jamu_a | jamu_b | khasiat 

A  | B  | Z 
A  | B  | X 
A  | B  | C 

И потом, я хочу, выход так:

jamu_a | jamu_b | khasiat | total 

A  | B  | Z, X, C | 3 

Я не эксперт в области MySQL, какой запрос для создания такого вывода? Скажите, если MySQL не может этого сделать и нужен какой-то язык программирования. Заранее спасибо

ответ

10
SELECT jamu_a, 
     jamu_b, 
     GROUP_CONCAT(khasiat) khasiat, 
     COUNT(*) total 
FROM TableName 
GROUP BY jamu_a, jamu_b 

ВЫХОДА

╔════════╦════════╦═════════╦═══════╗ 
║ JAMU_A ║ JAMU_B ║ KHASIAT ║ TOTAL ║ 
╠════════╬════════╬═════════╬═══════╣ 
║ A  ║ B  ║ Z,X,C ║  3 ║ 
╚════════╩════════╩═════════╩═══════╝ 

если есть повторяющиеся значения в столбце KHASIAT и вы хотите быть уникальным, вы можете добавить DISTINCT на GROUP_CONCAT()

SELECT jamu_a, 
     jamu_b, 
     GROUP_CONCAT(DISTINCT khasiat) khasiat, 
     COUNT(*) total 
FROM TableName 
GROUP BY jamu_a, jamu_b 
+1

Вы просто замечательный JW! –

+1

Это замечательно, спасибо мастер! – andrefadila

+0

не хозяин, но вы желанный ': D' –

Смежные вопросы