Hi everyone,
i need help to print a complex query in the browser. I have the following DB struct.
CREATE TABLE TB_TIPO_TELEFONE (
COD_TIPO_TELEFONE INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
DS_TIPO_TELEFONE CHAR(100) NOT NULL,
PRIMARY KEY(COD_TIPO_TELEFONE)
);
CREATE TABLE TB_TIPO_CONTATO (
COD_TIPO_CONTATO INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
DS_TIPO_CONTATO CHAR(100) NOT NULL,
PRIMARY KEY(COD_TIPO_CONTATO)
);
CREATE TABLE TB_EMPRESA (
COD_EMPRESA INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
COD_UF INTEGER UNSIGNED NOT NULL,
DS_NOME_FANTASIA_EMPRESA CHAR(30) NOT NULL,
DS_RAZAO_SOCIAL_EMPRESA CHAR(30) NOT NULL,
NUM_CNPJ_EMPRESA VARCHAR(14) NOT NULL,
DS_LOGRADOURO_EMPRESA CHAR(50) NULL,
DS_BAIRRO_EMPRESA CHAR(30) NOT NULL,
DS_CIDADE_EMPRESA CHAR(30) NOT NULL,
NUM_CEP_EMPRESA INTEGER(8) UNSIGNED NOT NULL,
DT_CADASTRO_EMPRESA DATE NOT NULL,
PRIMARY KEY(COD_EMPRESA),
INDEX TB_EMPRESA_FKIndex1(COD_UF),
FOREIGN KEY(COD_UF)
REFERENCES TB_UF(COD_UF)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
CREATE TABLE TB_CONTATO_EMPRESA (
COD_CONTATO_EMPRESA INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
COD_EMPRESA INTEGER UNSIGNED NOT NULL,
COD_TIPO_CONTATO INTEGER UNSIGNED NOT NULL,
DS_NOME_CONTATO_EMPRESA CHAR(50) NOT NULL,
DS_EMAIL_CONTATO_EMPRESA CHAR(30) NOT NULL,
PRIMARY KEY(COD_CONTATO_EMPRESA),
INDEX TB_CONTATO_EMPRESA_FKIndex1(COD_EMPRESA),
INDEX TB_CONTATO_EMPRESA_FKIndex2(COD_TIPO_CONTATO),
FOREIGN KEY(COD_EMPRESA)
REFERENCES TB_EMPRESA(COD_EMPRESA)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY(COD_TIPO_CONTATO)
REFERENCES TB_TIPO_CONTATO(COD_TIPO_CONTATO)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
CREATE TABLE TB_TELEFONE_CONTATO_EMPRESA (
COD_TELEFONE_CONTATO_EMPRESA INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
COD_TIPO_TELEFONE INTEGER UNSIGNED NOT NULL,
COD_CONTATO_EMPRESA INTEGER UNSIGNED NOT NULL,
NUM_COD_AREA_TEL_EMPRESA INTEGER(3) UNSIGNED NOT NULL,
NUM_TEL_EMPRESA INTEGER(8) UNSIGNED NOT NULL,
PRIMARY KEY(COD_TELEFONE_CONTATO_EMPRESA),
INDEX TB_TELEFONE_CONTATO_EMPRESA_FKIndex1(COD_CONTATO_EMPRESA),
INDEX TB_TELEFONE_CONTATO_EMPRESA_FKIndex2(COD_TIPO_TELEFONE),
FOREIGN KEY(COD_CONTATO_EMPRESA)
REFERENCES TB_CONTATO_EMPRESA(COD_CONTATO_EMPRESA)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY(COD_TIPO_TELEFONE)
REFERENCES TB_TIPO_TELEFONE(COD_TIPO_TELEFONE)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
It means that my company may have several contacts and each contact has several phones. Each contact can have a type of contacts (HR, IT, financial)and each phone can have several types of phone(home phone, work phone, cel phone).
When i receive my query i'd like to show something like this.
Francisco da Silva (Contact1)
number / homephone
number / celphone
Maria da Cunha (Contact2)
number/ celphone
number/ facsmile
I'd like to order by contact name.
To the query i use the following command:
SELECT A.COD_CONTATO_EMPRESA, A.COD_EMPRESA, A.DS_NOME_CONTATO_EMPRESA, A.DS_EMAIL_CONTATO_EMPRESA, A.COD_TIPO_CONTATO, B.COD_TIPO_CONTATO, B.DS_TIPO_CONTATO, C.COD_TELEFONE_CONTATO_EMPRESA, C.COD_TIPO_TELEFONE, C.COD_CONTATO_EMPRESA, C.NUM_COD_AREA_TEL_EMPRESA, C.NUM_TEL_EMPRESA, D.COD_TIPO_TELEFONE, D.DS_TIPO_TELEFONE FROM TB_CONTATO_EMPRESA A, TB_TIPO_CONTATO B, TB_TELEFONE_CONTATO_EMPRESA C, TB_TIPO_TELEFONE D WHERE A.COD_EMPRESA = '26' AND B.COD_TIPO_CONTATO = A.COD_TIPO_CONTATO AND C.COD_CONTATO_EMPRESA = A.COD_CONTATO_EMPRESA AND D.COD_TIPO_TELEFONE = C.COD_TIPO_TELEFONE ORDER BY A.DS_NOME_CONTATO_EMPRESA
As the selected company has 2 contacts and each contact has 2 phones, this query returns 4 lines. 2 lines for the first contact and 2 lines for the second contact.
Whats the best way to show it on my browser grouping it by the contact name as i showed before? Tks and regards
Vinicius Oliveira