首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySQL中列出所有没有价格的产品

在MySQL中列出所有没有价格的产品
EN

Stack Overflow用户
提问于 2013-08-08 21:33:24
回答 3查看 210关注 0票数 0

这个查询是为一个利基价格比较网站。

我有两个表,第一个列出产品细节,第二个列出与产品相关的所有价格。一个产品可以有一个或多个价格。

我想列出所有的产品,没有积极的价格,用于家政服务。

在价格表中可以有一个条目,其中的价格=零,在这种情况下,Prod_price_active将设置为"0“。如果产品确实有价格,那么Prod_price_active将被设置为"1“。

表1

代码语言:javascript
复制
Prod_id
Prod_name
Prod_description

表2

代码语言:javascript
复制
Price_id
Prod_id
Prod_price
Prod_price_active
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-08 21:37:46

要理解的最简单的查询是:

代码语言:javascript
复制
select * from table1
where not exists (
    select * from table2
    where Prod_price_active = 1
    and Prod_id = table1.Prod_id)

这是SQL版本的句子“给我所有没有有效价格的产品”

票数 1
EN

Stack Overflow用户

发布于 2013-08-08 21:37:31

假设每个产品都在价格表中,您可以做一个inner join

代码语言:javascript
复制
select a.Prod_id, a.Prod_name, a.Prod_description 
from PRODUCTS a inner join PRICES b 
on a.Prod_id = b.Prod_id 
where b.Prod_price_active=0
票数 0
EN

Stack Overflow用户

发布于 2013-08-08 21:41:40

您正在寻找一种执行反连接的方法

代码语言:javascript
复制
SELECT table1.* FROM table1
                LEFT JOIN table2 USING(prod_id) 
                WHERE Prod_price IS NULL
                OR Prod_price_active = 0

这将只保留table1 (“产品表”)中没有相应条目的行(“价格表”)或将Prod_price_active设置为0的行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18136541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档