Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Há muito tempo não trabalhava com BD's a fundo e estou precisando fazer um SELECT, mas acho que estou confundindo tudo.
Tenho as seguintes tabelas com as respectivas colunas.
TABELA1
-----------
cust_email
cust_custnr
TABELA2
-----------
cpack_usernr
cpack_canceldate
Preciso fazer um SELECT que liste o conteúdo de cust_email da TABELA1, sendo que cust_custnr da TABELA1 seja igual ao cpack_usernr da TABELA2.
Mas APENAS seja listado se cpack_canceldate da TABELA2 seja diferente de 0000-00-00 (data).
Tentei algo assim:
SELECT TABELA1.cust_email, TABELA1.cust_custnr, TABELA2.cpack_usernr FROM TABELA1 INNER JOIN TABELA2 ON TABELA1.cust_custnr = TABELA2.cpack_usernr AND TABELA2.cpack_canceldate != "0000-00-00" GROUP BY TABELA1.cust_custnr, TABELA1.cpack_usernr;Retorna:
>
MySQL said: Documentation
#1054 - Unknown column 'TABELA1.cpack_usernr' in 'group statement'
Agradeço de antemão por qualquer ajuda disponibilizada.
Um abraço.
>
Operador que compara diferenças é o <> e não o !=
Tente assim:
SELECT *FROM TABELA1 a, TABELA2 bWHERE a.cust_custnr = b.cpack_usernrAND b.cpack_canceldate <> '0000-00-00'GROUP BY a.cust_custnrFlws...:D
Troquei != por <>, tudo ok. Obrigado.
Certo, quase lá. Agora preciso que retorne apenas os e-mails, mantendo a ordem do GROUP BY TABELA1.cust_custnr, TABELA1.cpack_usernr, mas que não sejam mostradas estas colunas. APENAS e-mail.
Seu exemplo é prático, mas eu quero apenas que sejam retornados os e-mails.
Grato.
Se meu exemplo te atendeu, tente assim para resolver completamente:
SELECT a.cust_emailFROM TABELA1 a, TABELA2 bWHERE a.cust_custnr = b.cpack_usernrAND b.cpack_canceldate <> '0000-00-00'GROUP BY a.cust_custnr
Flws...
;)
>
Se meu exemplo te atendeu, tente assim para resolver completamente:
SELECT a.cust_emailFROM TABELA1 a, TABELA2 bWHERE a.cust_custnr = b.cpack_usernrAND b.cpack_canceldate <> '0000-00-00'GROUP BY a.cust_custnrFlws...;)
Certinho assim, boa. ;) Abração.
Operador que compara diferenças é o <> e não o !=
Tente assim:
SELECT *FROM TABELA1 a, TABELA2 bWHERE a.cust_custnr = b.cpack_usernrAND b.cpack_canceldate <> '0000-00-00'GROUP BY a.cust_custnr
Flws...
:D