mysql 2加入多个WHERE子句的错误

时间:2014-08-17 22:21:27

标签: mysql sql join

我试图使用以下语句从我的SQL表中调用特定信息

SELECT `PROP_STREET`, `PROP_PRICE`, `PROP_STATUS`, `AGT_FNAME`, `AGT_LNAME`
FROM `property`, `agent`
WHERE property.PROP_AGENT = agent.AGT_FNAME && property.PROP_STATUS = ("SOLD" , "Available for sale", "Under Contract"); 

正如您所看到的,我正在尝试将列出的所有内容称为SOLDAvailable for saleUnder Contract。当我尝试这样做时,我收到错误operand should contain 1 coulmn只有当我尝试拨打多个PROP_STATUS

时才会出现此错误

2 个答案:

答案 0 :(得分:2)

这是您正在尝试做的正确语法:

select prop_street, prop_price, prop_status, agt_fname, agt_lname
  from property p
  join agent a
    on p.prop_agent = a.agt_fname
 where p.prop_status in ('SOLD', 'Available for sale', 'Under Contract')

一些注意事项:

  1. Join条件属于JOIN子句,而不是WHERE子句。虽然没有功能差异,但这是一种很好的做法。

  2. &安培;&安培;在其他语言中的意思是“AND”,而不是SQL。必须使用“和”

  3. 对文字(')使用单引号,而不是双引号(“)

  4. 指定多个文字时使用IN,而不是=。

答案 1 :(得分:0)

避免使用旧的JOIN语法(where子句)并使用较新的连接(使用ON子句)。

SELECT `PROP_STREET`, `PROP_PRICE`, `PROP_STATUS`, `AGT_FNAME`, `AGT_LNAME`
FROM `property` INNER JOIN  `agent`
ON property.PROP_AGENT = agent.AGT_FNAME
WHERE  property.PROP_STATUS IN ('SOLD' , 'Available for sale', 'Under Contract');