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

问题描述 投票:4回答:1

所以目前我们正在做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)
mysql sql xampp
1个回答
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,肖恩

© www.soinside.com 2019 - 2024. All rights reserved.