如何使用多个和在查询中从db获取值

时间:2015-12-30 06:06:35

标签: mysql sql

我想获取属于用户ID的数据。 现在我想基于2个条件获取数据。我希望显示空闲和活动用户的记录。

我使用了以下查询来执行此操作。但我无法检索数据。

这里product_proposer是user_id.one user_id有很多products.i想要获取属于那个product_status是$ active和$ soldout的用户id的数据。

以下查询返回output-1

SELECT product_id,product_name FROM product_list WHERE product_proposed_user_id ='12' AND product_publish_status = '0'

输出-1:

94 MARSHALL MG SERIES MG15CFX GUITAR COMBO AMP CARBON...
95 SESSION STUDIO CLASSIC

****** ---

查询-2:

SELECT product_id,product_name FROM product_list WHERE product_proposed_user_id ='12' AND product_publish_status = '4'

返回 输出-2:

213 Mountain bike

现在我想通过组合两个查询来获得输出,即

SELECT product_id,product_name FROM product_list WHERE product_proposed_user_id ='12' AND product_publish_status = '0' AND product_publish_status = '4'

所以输出应该是:

94 MARSHALL MG SERIES MG15CFX GUITAR COMBO AMP CARBON...
95 SESSION STUDIO CLASSIC
213 Mountain bike

但是当我运行此查询时,它什么也没有返回。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

只是为了突出SQL中AND和OR运算符的基本规则

SELECT product_id,product_name FROM product_list 
WHERE product_proposed_user_id ='12' 
      AND product_publish_status = '0' 
      AND product_publish_status = '4'

以上是您的查询

您提到了SQL服务器来获取结果from product_list where product_proposed_user_id ='12' AND product_publish_status = '0' AND product_publish_status = '4'

现在,SQL将搜索product_list where product_proposed_user_id ='12' AND product_publish_status = '0' AND product_publish_status = '4'

中的记录

但是,product_list中没有单个记录,其product_publish_status等于' 0'和' 4'。因此它会返回0条记录

为了获得所需的输出,您需要将查询编写为

SELECT product_id,product_name FROM product_list 
WHERE 
(product_proposed_user_id ='12' AND product_publish_status = '0') 
  OR 
(product_proposed_user_id ='12' AND product_publish_status = '4')

您将获得预期的输出。请尝试告诉我们。

参考:http://www.w3schools.com/sql/sql_and_or.asp