更改“select”语句时,SQL结果会有所不同

时间:2017-07-14 10:23:05

标签: mysql sql xampp

所以目前我们正在做我们学校的SQL和 在更改选择参数时,我想知道可疑结果集。

所以当我尝试这个时:

select p1.vorname, p1.Geburtstag, p2.vorname, p2.Geburtstag
from patienten as p1
inner join patienten as p2 
    on p1.Geburtstag = p2.Geburtstag AND p1.Nr != p2.Nr
order by p1.Geburtstag asc

然后我得到44个结果。但是当我尝试这个时:

select p1.vorname, p1.Geburtstag
    from patienten as p1
    inner join patienten as p2 
        on p1.Geburtstag = p2.Geburtstag AND p1.Nr != p2.Nr
    order by p1.Geburtstag asc

我得到了1084个结果,代表了所有患者...

我想知道为什么,因为我所做的只是更改选择语句......

我正在使用XAMPP:

Server: 127.0.0.1 via TCP/IP
Server-Typ: MariaDB
Server-Version: 10.1.8-MariaDB-log - mariadb.org binary distribution
Protokoll-Version: 10
Benutzer: root@localhost
Server-Zeichensatz: UTF-8 Unicode (utf8)

1 个答案:

答案 0 :(得分:0)

首先你指出这是历史上因为没有恒星查询优化而知道的MySQL,所以让我们给它一个更清晰的语法来理解。我怀疑连接中的!=是关闭MySQL的。更改您的查询,以便您加入公共字段并在!=字段上过滤(即在哪里):

select p1.vorname, p1.Geburtstag
    from patienten as p1
    inner join patienten as p2 
        on p1.Geburtstag = p2.Geburtstag 
    where p1.Nr != p2.Nr
    order by p1.Geburtstag asc

HTH, 肖恩