所以目前我们正在做我们学校的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)
答案 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, 肖恩