Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL多次返回相同的结果,即使使用不同的_Mysql_Sql_Select_Join_Distinct - Fatal编程技术网

MySQL多次返回相同的结果,即使使用不同的

MySQL多次返回相同的结果,即使使用不同的,mysql,sql,select,join,distinct,Mysql,Sql,Select,Join,Distinct,这里是sql SELECT DISTINCT t1.`name` team1_name, t1.id team1_id, t2.id team2_id, t2.`name` team2_name, sc.`name_en` sportCatname, c.title championshipTitle, e.dat

这里是
sql

        SELECT DISTINCT
            t1.`name` team1_name,
            t1.id team1_id,
            t2.id team2_id,
            t2.`name` team2_name,
            sc.`name_en` sportCatname,
            c.title championshipTitle,
            e.date eventDate,
            e.id eventId,
            e.title,
        FROM
            `Event` e,
            `SportCategory` sc,
            `Championship` c,
            `Team` t1,
            `Team` t2
        WHERE
            e.top = 1
        AND t1.id = e.team1ID
        AND t2.id = e.team2ID
AND sc.id = c.sportCategoryID

也尝试加入。不可能。它返回更正的行,但在结果集中,我有相同的行2次。我做错了什么?

where子句中的
SportCategory
Champion
没有关系。这就是产生重复结果的原因


您应该在
where
子句中提供关系。

您可以检查任何列是否有不在其他行中的特殊字符吗?

和sc.id=c.sportCategoryID
添加了这一行。现在每个结果在resultset中出现2次。是的,它减少了结果行。但不是对1time@heron:你必须再加一个。其中一个表应该是
SportCategory
Championship
,另一个表应该来自3个表的其余部分。这是一个非常好的例子,说明了为什么应该避免
where
子句中过时的隐式联接。当使用显式
JOIN
语法时,您不能意外地忘记一个JOIN并生成笛卡尔积。您应该更喜欢使用显式
JOIN
s,而不是
WHERE
子句中过时的隐式JOIN。