Mysql 使用联接操作在查询中显示重复行

Mysql 使用联接操作在查询中显示重复行,mysql,sql,select,join,inner-join,Mysql,Sql,Select,Join,Inner Join,我正在写这个问题 SELECT aw_offers_v3.id,aw_offers_v3.name FROM aw_offers_v3,aw_countries_v3,aw_categories_v3 WHERE aw_offers_v3.id = aw_countries_v3.id AND aw_offers_v3.id = aw_categories_v3.id AND ( aw_offers_v3.api_key = 'a2a9e134bcb7935ecb6a1d98911065

我正在写这个问题

SELECT aw_offers_v3.id,aw_offers_v3.name 
FROM aw_offers_v3,aw_countries_v3,aw_categories_v3 
WHERE aw_offers_v3.id = aw_countries_v3.id 
AND aw_offers_v3.id = aw_categories_v3.id 
AND ( aw_offers_v3.api_key = 'a2a9e134bcb7935ecb6a1d989110650c016c91f17835d733aebd113255b4abb1' ) 
AND ( aw_offers_v3.network_id = 'http://api.hasoffers.com/v3/Affiliate_Offer.json' ) 
AND ( aw_countries_v3.country = 'Albania' OR aw_countries_v3.country = 'Armenia' ) 
AND ( aw_categories_v3.category = 'Casual' )
我得到了这个结果

|--------------------------------------|
|     id         |        name         |
|--------------------------------------|
|     11105      |        APP 3        |
|----------------|---------------------|
|     11107      |        APP 4        |
|----------------|---------------------|
|     11105      |        APP 3        |
|--------------------------------------|
|     11107      |        APP 4        |
|----------------|---------------------|
我不知道为什么我会得到这个重复的结果。实际表中没有重复数据

这是我的AWU报价

|----------------------------------------------------------|
|     id         |        name         |        Desc       |
|----------------------------------------------------------|
|     391        |        APP 1        |       A           |
|----------------|---------------------|-------------------|
|     234        |        APP 2        |       B           |
|----------------|---------------------|-------------------|
|     11105      |        APP 3        |       bb          |
|----------------------------------------------------------|
|     11107      |        APP 4        |       thut        |
|----------------|---------------------|-------------------|
这是我的aw_国家

|----------------------------------------------------------|
|  internal_id   |      country        |        id         |
|----------------------------------------------------------|
|      1         |      Albania        |       11105       |
|----------------|---------------------|-------------------|
|      2         |      Armenia        |       11105       |
|----------------|---------------------|-------------------|
|      3         |     Argentina       |       11105       |
|----------------------------------------------------------|
|      4         |      Albania        |       11107       |
|----------------|---------------------|-------------------|
|      5         |      Armenia        |       11107       |
|----------------|---------------------|-------------------|
|      6         |       Andola        |       11107       |
|----------------------------------------------------------|
这是我的aw_分类

|----------------------------------------------------------|
|  internal_id   |      category       |        id         |
|----------------------------------------------------------|
|      1         |      Android        |       11105       |
|----------------|---------------------|-------------------|
|      2         |       Casual        |       11105       |
|----------------|---------------------|-------------------|
|      3         |       Sports        |       11105       |
|----------------------------------------------------------|
|      4         |       Gamimg        |       11107       |
|----------------|---------------------|-------------------|
|      5         |       Casual        |       11107       |
|----------------|---------------------|-------------------|
|      6         |       Sports        |       11107       |
|----------------------------------------------------------|
试试这个:

SELECT DISTINCT a.id, a.name 
FROM aw_offers_v3 a 
INNER JOIN aw_countries_v3 b ON a.id = b.id 
INNER JOIN aw_categories_v3 c ON a.id = c.id 
WHERE a.api_key = 'a2a9e134bcb7935ecb6a1d989110650c016c91f17835d733aebd113255b4abb1' AND 
      a.network_id = 'http://api.hasoffers.com/v3/Affiliate_Offer.json' AND 
      b.country IN ('Albania', 'Armenia') AND c.category = 'Casual'

有一件事我想告诉你,如果你没有在你的查询中使用Distinct,那么它会给出与我之前得到的相同的重复行。。。。如果我在查询中输入Distinct,那么就不会得到重复的行。。。。那么使用内部连接有什么意义呢?好的,实际上我通常不使用连接关键字。。。无论如何,谢谢。。。顺便问一下,你能解释一下,如果我们不使用DISTINCT@Saswat原始查询具有内部联接。它只是使用了较旧的隐式语法,即列出
FROM
子句中的所有表。性能是一样的,这只是现在的首选语法。@Saswat您会得到重复的语法,因为您有多个国家具有相同的
id
。每一个都会在结果中生成一行。您尝试过这个吗<代码>按aw分组提供v3.namenope。我没有使用分组方式……我认为分组方式可以解决你的问题