首页 > 解决方案 > 根据相关表中的数据从表中获取数据列表,不重复

问题描述

数据库中的表:

  1. 我在 MySQLSTORESNEW_ARRIVALS.
  2. 一个有所有商店的详细信息,另一个表存储新到货的详细信息(如果有的话)。
  3. 两者都通过 column 链接store_id

我正在尝试做的事情:

  1. 列出所有有到达条目的商店,而不显示重复的商店。

我试过的两个 SQL 查询:

SELECT 
        stores.id,
        stores.name 
        new_arrivals.id,
        new_arrivals.title,
        new_arrivals.store_id
FROM 
        stores, 
        new_arrivals

上述 SQL 有效,但列出了多个商店。对于商店中的每个新到货,都有一排。我只想要每个商店一个条目。

所以我尝试了下面的 SQL 查询:

SELECT         
       na.id,
       na.is_active,
       na.store_id      
FROM 
       new_arrivals  as na    
group by na.store_id

上面的查询给出了唯一的store_ids但我可以从stores表中获取信息。

我进一步尝试了以下没有结果:

SELECT         
       na.id,
       na.is_active,
       na.store_id      
FROM 
       new_arrivals  as 

INNER JOIN (
    SELECT name 
    FROM stores as sl
) As locations

group by na.store_id 

实现这一目标的最佳方法是什么?

标签: mysqljoinduplicatesforeign-keysrelationship

解决方案


这仅提供那些在新到货中有条目的商店。

SELECT 
        distinct s.id, s.name 
FROM stores s 
INNER JOIN new_arrivals na on na.store_id = s.store_id;

希望这是你想要的。


推荐阅读