首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择一个适用于所有干预措施的产品。

选择一个适用于所有干预措施的产品。
EN

Stack Overflow用户
提问于 2018-09-28 15:28:10
回答 2查看 36关注 0票数 0

你好,我的问题对你们中的一些人来说很简单^^

我有一个桌子产品,推荐信和干预。当有干预时,表中的引用在干预所需的产品与干预之间建立了联系。

我想知道如何搜索已成为所有干预行动一部分的产品。

这是我的桌子:

代码语言:javascript
复制
--TABLE products
create table products (
 reference char(5) not null  check ( reference like 'DT___'),
 designation char(50) not null,
 price numeric (9,2) not null,
 primary key(reference) );

-- TABLE interventions

create table interventions ( 
    nointerv integer not null ,
    dateinterv date not null,
    nameresponsable char(30) not null,
    nameinterv char(30) not null,
    time float not null check ( temps !=0 AND  temps between 0 and 8),
    nocustomers integer not null ,
    nofact integer not null ,
    primary key( nointerv),
    foreign key( noclient) references customers,
    foreign key (nofacture) references facts 
);

-- TABLE replacements

create table replacements (
    reference char(5) not null check ( reference like 'DT%'),
    nointerv integer not null,
    qtereplaced smallint,
    primary key ( reference, nointerv ),
    foreign key (reference) references products,
    foreign key(nointerv) references interventions(nointerv) 
);

-编辑:这是我的替换表中的一个选择

我们可以从这张图片中看到,DT802产品在每一次干预中都被使用,谢谢;)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-28 16:00:48

这将显示1行干预-产品。这是你期待的吗?

代码语言:javascript
复制
select interventions.nointerv, products.reference
from interventions
inner join replacements on interventions.nointerv = replacements.nointerv
inner join products on replacements.reference = products.reference;

这一个?

代码语言:javascript
复制
select products.reference, products.designation
from interventions
inner join replacements on interventions.nointerv = replacements.nointerv
inner join products on replacements.reference = products.reference
group by products.reference, products.designation
having count(*) = (select count(*) from interventions);
票数 0
EN

Stack Overflow用户

发布于 2018-09-28 16:08:34

你的问题很难理解。如果我将其解释为nointervreplacements中的所有reference包含所有产品,那么:

代码语言:javascript
复制
select nointerv
from replacements r
group by nointerv
having count(distinct reference) = (select count(*) from products);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52558489

复制
相关文章

相似问题

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