2015-08-07 2 views
0

простой запрос дизайн помощь. это мой запрос:простой дизайн запросов

SELECT tkt.ticket_id, tkt.`number`, val.field_id, FF.name, val.value 
FROM os_TICKET os, os_form_entry_values val, os_form_field FF 
where tkt.ticket_id = val.entry_id 
and val.field_id = FF.id 

ВЫВОД

ticket_id number field_id name  value 
5  592593   4  SSN   11111111111 
5  592593   87  title  Mr 
5  592593   117  dob   05/01/2011 
5  592593   3  mobile  0091981123232 

я хочу, чтобы иметь выход так:

ticket_id Number SSN   Title dob   mobile 
5   592593 1111111111 Mr. 05/012011 009198182838485 
+0

Посмотрите на 'SELECT' часть вашего запроса. Вы можете видеть, что он специально выбирает 'ticket_id, number, field_id, name, value' в этом порядке. Вы пытались изменить свой запрос на 'SELECT ticket_id, number, ssn, title, dob, mobile' вместо этого? Вам нужно будет использовать правильные имена полей и, возможно, изменить оставшуюся часть вашего запроса, если эти новые поля находятся в другой таблице. Но дайте им вернуться и вернуться к своим результатам, если он все еще не работает. – Calcolat

+0

ssn, title и мобильные детали находятся в другой таблице ... и они связаны полем ticket_id. – Darth88

+0

Этот метод соединения таблиц фактически не использовался в 1995 году. Почему бы не присоединиться к 21-му столетию? – Strawberry

ответ

0

Если имя всегда имеет четыре значения вам, можете попробовать это

select ticket_id , Number, 
max(case when Name='SSN' then value end) as SSN , 
max(case when Name='Title' then value end) as Title , 
max(case when Name='dob' then value end) as dob , 
max(case when Name='mobile' then value end) as mobile 
from 
( 
SELECT tkt.ticket_id, tkt.`number`, val.field_id, FF.name, val.value 
FROM os_TICKET os, os_form_entry_values val, os_form_field FF 
where tkt.ticket_id = val.entry_id 
and val.field_id = FF.id 
) as t 
group by ticket_id , Number 
+0

Большое вам спасибо, сэр. однако поле имени имеет около 60 значений. поэтому любая помощь будет высоко оценена. – Darth88

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