美好的一天,在我的数据库中,我有两个表(实体),一个名为档,另一个名为客户。在索引页面上,我创建了一个表(函数),它将返回数据库实体的行, stall 哪个foreignkey( stallno )值在客户端中不存在表。 有关详细信息, stallno 是表停止的主键和客户端上的外键。 / p>
我想要显示的是仍然可用或尚未被客户占用的档位数。所以我这样做了一个查询:
SELECT DISTINCT a.stallno, a.location, a.condition, b.stallno
FROM stall a, clients b WHERE NOT (a.stallno<=>b.stallno);
我在DB表档上保存了一百个档位。现在,客户端正在使用多个数字,这些是12,11,13,14,20,21,28,29和30(因此被保存在客户端表中作为外键 stallno ) 所以应该显示的是那些不在这个组中的数字。例如,Stall数字:1,2,10,35等(剩余数字)。 这就是为什么我选择使用不相等的函数/符号来获得我想要的东西。我用过的第一个查询就是:
SELECT a.stallno,a.location,a.condition, b.stallno
FROM stall a, clients b WHERE a.stallno!=b.stallno
但是这只显示了整行,包括 b.stallno 的值,并复制了它。不仅如此,它还显示0个数字。这也是b.stallno的一部分。我要显示的是与 b.stallno 无关的剩余数字。所以我尝试使用DISTINCT函数,希望省略0数字。哪种方式有效,但仍然重复数字(12,11,13,14,20,21,28,29和30)以及尚未采用的数字(除了给定数字之外的数字)。我做的是再次尝试另一个查询。这次是NOT功能。
SELECT DISTINCT a.stallno,a.location,a.condition,b.stallno FROM stall a,tenant b WHERE NOT(a.stallno!= b.stallno)
但是,似乎仍然无法正常工作。甚至&lt;&gt;给我相同的结果。 直到我遇到这个&lt; =&gt;符号。据说这是一个不相同的功能。我试过了,但与前几个陈述略有不同。这次来自a.stallno的所有数字(从PK到DB 停止)显示1-100的所有行。
现在,我得出的结论是,这些符号可能不等于&lt; =&gt;,!=,&lt;&gt;似乎不适用于DREAMWEAVER,或PHPandMySQL。你觉得怎么样? 你知道什么叫NOT EQUAL函数。
答案 0 :(得分:0)
mysql中的不等号是!=。问题是你搜索的方向错误。
您应该使用左连接:
SELECT DISTINCT a.stallno, a.location, a.condition
FROM stall a left join clients b ON a.stallno=b.stallno
WHERE b.stallno is null