SQL IF/EXISTS语句

MrC*_*ira 2 sql if-statement exists

我有两张表可能看起来像这样..

table_gb:

    ID:     Author:        Email:             Login:
    1.      John Doe       john@email.com     1
    2.      Jenn Smith     jenn@email.net     1
    3.      Michael        mich@email.co.uk   0


table_user:

    ID:     Username:      Email:
    1.      Jenstar        jenn@email.net
    2.      Knoxvile       knox@email.org
    3.      JohnDoe        john@email.com`


现在我想要做的就是创建一个SQL语句,从table_gb和IF"Login"== 1中提取所有字段,然后我希望它继续使用table_user中匹配的电子邮件来提取用户名. .

回来这样的东西..

    ID:     Author:       Username:      Email:               Login:
    1.      John Doe      JohnDoe        john@email.com       1
    2.      Jenn Smith    Jenstar        jenn@email.net       1
    3.      Michael                      mich@email.co.uk     0


它基本上只从table_user获取用户名,但只有在登录设置为1时才知道吗?我基本上都尝试了一切,但似乎什么都没有用!...

Tar*_*ryn 5

您应该能够LEFT JOIN在表之间使用,然后使用CASE表达式来显示用户名:

select g.id,
  g.author,
  case when g.login = 1 then u.username else '' end username,
  g.email,
  g.login
from table_gb g
left join table_user u
  on g.email = u.email;
Run Code Online (Sandbox Code Playgroud)

请参阅SQL Fiddle with Demo