1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Dúvida de SQL

Discussão em 'Web Development' iniciada por The Dealer, 17 de Maio de 2009. (Respostas: 3; Visualizações: 520)

  1. The Dealer

    The Dealer Power Member

    Alguem me consegue explicar porque é que este query não devolve nada?

    Código:
    SELECT  Users.ID_Users, Users.Username, Users.Nivel, OnlyAdmins.Nome, OnlyAdmins.Email, Professores.email
                                            FROM Users,OnlyAdmins,Professores
                                            WHERE Users.Nivel = '1'
                                            AND Users.ID_Users = OnlyAdmins.ID_Users
                                            AND Users.ID_Users = Professores.ID_Users
    [/CODE]

    Se tirar o AND Users.ID_Users = Professores.ID_Users (e o Professores.email) devolve-me apenas os administradores nao professores, correctamente, mas nao é isso que pretendo.. será por causa de serem duas colunas Email em tabelas diferentes?
     
    Última edição: 18 de Maio de 2009
  2. Sérgio Santos

    Sérgio Santos Power Member

    Na query estás a procurar registos que respeitem a condição
    users.id_users = onlyadmins.id_users e ao mesmo tempo que respeitem a condição
    users.id_users = professores.id_users (AND).
    Isso possivelmente nunca acontece... :)

    Substitui o teu AND por OR e deverá funcionar tal como queres.

    A tua query seria:

    Código:
    [COLOR=#000080][COLOR=#000080][FONT=Arial][COLOR=white]SELECT users.id_users, users.username, users.nivel, onlyadmins.nome, onlyadmins.email, professores.email[/COLOR][/FONT]
    [FONT=Arial][COLOR=white]FROM users, onlyadmins, professores[/COLOR][/FONT]
    [/COLOR][/COLOR][COLOR=white][FONT=Arial]WHERE users.nivel = [/FONT][FONT=Arial]'1'[/FONT][/COLOR]
    [COLOR=#000080][COLOR=#000080][FONT=Arial][COLOR=white]AND (users.id_users = onlyadmins.id_users[/COLOR][/FONT]
    [FONT=Arial][COLOR=white]OR users.id_users = professores.id_users)[/COLOR][/FONT]
    [/COLOR][/COLOR]
     
  3. The Dealer

    The Dealer Power Member


    Tão simples :) Enfim :) Agradecido.

    Resta-me solucionar o facto de aparecer duas vezes o mesmo professor mas ja vejo isso depois do jantar que deve ser qualquer coisa muito simples :)
     
  4. s00n

    s00n Power Member

    Usa um group by no fim ou distinct no início
     

Partilhar esta Página