【问题标题】:SQL - simple 'OR' not working! [duplicate]SQL - 简单的“或”不起作用! [复制]
【发布时间】:2011-05-31 22:56:42
【问题描述】:

可能重复:
SQL - Stumped on a SELECT - please help!!

你好!我有 2 个表:

myTable1 - 存储用户名和 user_ids
myTable2 - 存储电子邮件和 user_ids

我想要做的是返回一行用户名、电子邮件、两者或一个都没有,具体取决于采用哪个(或两者)。我正在使用以下代码,但得到了奇怪的结果!

选择 usr.username,pro.email FROM myTable1 AS usr, myTable2 AS pro WHERE usr.username = 'wookie' 或 pro.email = 'wookie@woo.com'


我期待收到两列 1 行。

列: 用户名,行: 'wookie' 和
列: 电子邮件,行: 'wookie@woo.com'

但是,我在用户名列中无数次重复“wookie”,而电子邮件列只输出了所有用户电子邮件的行(不是我在声明中指定的那一行)。

我是不是做错了什么?

【问题讨论】:

标签: sql mysql sql-server sql-server-2005


【解决方案1】:

我认为你必须执行一个加入命令:

    Select
    usr.username,
    pro.email

    from mytable1 usr

    inner join mytable2 pro
    on usr.user_id = pro.user_id

    Where Statement

【讨论】:

    【解决方案2】:

    也许您正在寻找加入或类似的东西。

    SELECT 
      usr.username, 
      pro.email 
    FROM 
      myTable1 AS usr 
      join myTable2 AS pro ON usr.user_ids = pro.user_ids
    WHERE 
      usr.username = 'wookie' OR pro.email = 'wookie@woo.com'
    

    【讨论】:

      【解决方案3】:
      select 
        usr.username, pro.email 
      from 
        myTable1 as usr
      inner join 
        myTable2 as pro
      on usr.user_ids=pro.user_ids
      WHERE 
      (usr.username='wookie' OR pro.email='wookie@woo.com');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-14
        • 1970-01-01
        • 1970-01-01
        • 2011-12-12
        • 2014-03-21
        • 1970-01-01
        相关资源
        最近更新 更多