首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环检查从一个表到另一个表的位置条件。

循环检查从一个表到另一个表的位置条件。
EN

Stack Overflow用户
提问于 2017-04-27 08:51:17
回答 2查看 33关注 0票数 0

我有两张桌子,牌子和generic_Drugs。一个generic_Drugs模型可以有多个品牌模型。因此,generic_Drugs in存储在品牌模型中。然而,当一种非专利药物被删除时,它的id仍然存在于品牌模型中--这就是我的应用程序根据用户需求的行为方式。

我需要一种从数据库中检索品牌项目的技术,在数据库中,它只检索存在于generic_drug类表中的品牌项目。

示例:

品牌模型-品牌表

代码语言:javascript
复制
    +--------+-----------+
    | id     |Generic id |    
    +--------+-----------+
    |      1 | 2001      | 
    |      2 | 2001      | 
    |      3 | 2002      | 
    |      4 | 2003      | 
    |      5 | 2004      | 
    |      6 | 2004      |
    |      7 | 2005      |
    |      8 | 2006      | 
    |      9 | 2006      | 
    +--------+-----------+

Generic_Drugs - genericDrugs表

代码语言:javascript
复制
    +-----------+
    | id        |    
    +-----------+
    | 2001      | 
    | 2002      | 
    | 2003      |
    | 2005      |
    +-----------+

因此,我需要一种技术,在generic_drug表中使用where条件列出来自品牌的所有品牌项目,并且只列出在generic_drugs表中存在通用id的品牌:

因此,当我运行查询时,它应该只检索:

代码语言:javascript
复制
    +--------+-----------+
    | id     |Generic id |    
    +--------+-----------+
    |      1 | 2001      | 
    |      2 | 2001      | 
    |      3 | 2002      | 
    |      4 | 2003      | 
    |      5 | 2004      | 
    |      7 | 2005      |
    +--------+-----------+
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-27 09:08:04

你可以用两种方式实现同样的目标。一种是使用INNER JOIN

代码语言:javascript
复制
 SELECT Id
 FROM Brand b
 INNER JOIN generic_Drugs gd ON gd.id=b.`Generic id` 

另一个是通过使用EXISTS

代码语言:javascript
复制
SELECT Id
FROM Brand b
WHERE EXISTS( SELECT 1
              FROM generic_Drugs 
              WHERE b.`Generic id`=id )

如果一个品牌没有仿制药就不能存在,那么在删除非专利drug.So时,我建议您删除相应的品牌,而不必在select查询中进行调整。您可以添加品牌表的Generic id作为FK,然后删除相应的品牌记录。

票数 0
EN

Stack Overflow用户

发布于 2017-04-27 08:55:24

我们可以使用内部连接。

代码语言:javascript
复制
SELECT DISTINCT(b.id) 
FROM brands b INNER JOIN genericDrugs gd
ON b.`Generic id` = gd.id

将只检索匹配的记录。

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

https://stackoverflow.com/questions/43653021

复制
相关文章

相似问题

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