У меня есть две таблицы:Преобразование нескольких строк в столбцы в MySQL
TABLEA
+-------+--------+
| Data | Acc_No |
+-------+--------+
| Unix | 10 |
| Linux | 20 |
+-------+--------+
TableB
+-----+----------+--------+
| Obj | Type | Amount |
+-----+----------+--------+
| 10 | rev | 100.00 |
| 10 | revision | 200.00 |
+-----+----------+--------+
Я хочу, чтобы на выходе, как этот
+-------+--------+----------+--------+-----------+----------+
| Data | Acc_No | Type | Amount | Type_1 | Amount_1 |
+-------+--------+----------+--------+-----------+----------+
| Unix | 10 | rev | 100 | revision | 200 |
+-------+--------+----------+--------+-----------+----------+
Я пробовал делать это с помощью простого соединения. Вот запрос:
SELECT a.Data,a.Acc_No, b.Type, b.Amount, bb.Type AS "Type_1", bb.Amount AS "Amount_1"
FROM TableA a,TableB b, TableB bb
WHERE a.Acc_No = b.Obj AND
b.Obj = bb.Obj AND
bb.Obj = a.Acc_No AND
a.Acc_No =10;
Но я получил этот выход.
+------+--------+----------+--------+----------+----------+
| Data | Acc_No | Type | Amount | Type_1 | Amount_1 |
+------+--------+----------+--------+----------+----------+
| Unix | 10 | rev | 100.00 | rev | 100.00 |
| Unix | 10 | revision | 200.00 | rev | 100.00 |
| Unix | 10 | rev | 100.00 | revision | 200.00 |
| Unix | 10 | revision | 200.00 | revision | 200.00 |
+------+--------+----------+--------+----------+----------+
Я пробовал искать ответ на этом сайте, и я даже искал его, но я не нашел для него правильного ответа.
Волю два типа всегда будут 'rev' и' revision'? Будут ли другие типы? Будет ли более двух типов? – JNevill
Нет, существует только два типа: rev и ревизия. Это всего лишь образец данных, но мой более высокий результат ожидает такого рода выход. – Am1t