2013-09-21 4 views
-1

Моя задача - показать на экране таблицу, построенную SQL и PHP, но структура таблицы SQL не такая уж мне нужна.Таблица SQL: Как показать таблицу, созданную из другой таблицы SQL?

В исходной таблице:

╔═════════════════════════════════╗ 
║ User Date  Attr Val ║ 
╠═════════════════════════════════╣ 
║ alex 1.2.3  A  523 ║ 
║ alex 1.2.3  b  5 ║ 
║ alex 1.2.3  c  12 ║ 
║ mark 2.3.4  A  244 ║ 
║ mark 2.3.4  b  0 ║ 
║ mark 2.3.4  c  88 ║ 
╚═════════════════════════════════╝ 

Каждый пользователь появляется в 3 раза с той же датой, и единственное, что изменений является Attr и Вэл, но за столом, мне нужно, чтобы показать это для каждого пользователя и выглядит это:

Для - Alex:

╔═════════════════════╗ 
║ Date A B C ║ 
╠═════════════════════╣ 
║ 1.2.3 523 5 12 ║ 
╚═════════════════════╝ 

(только одна строка для каждой даты)

Моя задача - создать систему, которая автоматически берет данные из исходной таблицы SQL из базы данных и создает обновленную таблицу. Я сам построил таблицу, но понятия не имею, как вставлять автоматически данные в нее.

Спасибо!

+0

Ваш вопрос непонятен. Ваша цель - выбрать записи из вашей таблицы и отобразить их, как показано, или вставить записи? –

+0

Всегда ли будет только одна строка на человека за каждый атрибут? – Gidil

+0

Конечная таблица всегда будет показывать пользователю свои значения A, B и C для каждого дня. сегодня он видит свои детали A, B, C, а следующая строка будет содержать следующий день и его данные. –

ответ

0

Вы можете использовать встроенные selects с соответствующими предложениями where. Следующий код написан для MSSQL сервера, но вполне возможно, что он может работать в MySQL тоже (я что-нибудь для MySQL для возрастов не писать)

SELECT User, Date (SELECT Val FROM SourceTable AS ST1 WHERE ST1.Attr='A' AND ST1.User = SourceTable.User AND ST1.Date = SourceTable.Date) AS A, (SELECT Val FROM SourceTable AS ST2 WHERE Attr='B' AND ST2.User = SourceTable.User AND ST2.Date = SourceTable.Date) AS B, (SELECT Val FROM SourceTable AS ST3 WHERE Attr='C' AND ST3.User = SourceTable.User AND ST3.Date = SourceTable.Date) AS C FROM SourceTable 

Вы можете использовать присоединяется и похожее на это.

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