0

以下は私が使おうとしている私の質問です、

select DISTINCT c.sno from Cards as c, reservation as r 
where c.name='CRS-4-FC' AND c.sno != r.ssno;

このクエリは、予約テーブルに存在しないカードからsnoのみを選択することになっています。つまり、予約テーブルのssnoの列にsnoは存在しません。入れました

c.sno!=r.ssno

私がすべてのsnoを選ばないように。しかし、このクエリを実行すると、予約されていないものではなく、すべてのsnoを取得します。誰かが私がうまくいかないところを助けることができますか?

4

3 に答える 3

2

試す

select DISTINCT c.sno
from Cards as c 
left outer join reservation as r on c.sno = r.ssno
where r.ssno is null
and c.name='CRS-4-FC'
于 2012-08-10T10:41:54.230 に答える
1

LEFT JOIN代わりに試してください:

SELECT DISTINCT c.sno
FROM Cards c
    LEFT JOIN reservation as r
        ON c.sno = r.ssno
WHERE c.name='CRS-4-FC' AND
      r.ssno IS NULL;

SQL結合の視覚的な説明を参照してください

于 2012-08-10T10:42:41.707 に答える
1
select DISTINCT c.sno 
from Cards as c LEFT JOIN reservation as r  
ON c.sno = r.ssno
where c.name='CRS-4-FC' AND r.ssno IS NULL; 
于 2012-08-10T10:43:27.960 に答える