|
| SQL join Fra : Stig H. Jacobsen |
Dato : 30-08-04 21:25 |
|
Kan man omskrive denne select til at bruge en join istedet for
sub-select?
SELECT c.custno FROM customers c
WHERE NOT EXISTS (SELECT 1
FROM deleted_customers c
WHERE c.custno = d.custno)
--
Stig
(remove the 'no's to send me mail)
| |
Peter Lykkegaard (30-08-2004)
| Kommentar Fra : Peter Lykkegaard |
Dato : 30-08-04 21:52 |
|
"Stig H. Jacobsen" <usenet_dk@nonogoth.dk> wrote in message
news:ch02en$2htb$1@news.cybercity.dk...
> Kan man omskrive denne select til at bruge en join istedet for
> sub-select?
>
> SELECT c.custno FROM customers c
> WHERE NOT EXISTS (SELECT 1
> FROM deleted_customers c
> WHERE c.custno = d.custno)
>
Tjoo, på MSSQL ville jeg bruge en Left Join
http://www.devguru.com/Technologies/jetsql/quickref/rightjoin.html
Man kan så tjekke for NULL værdier på den "højre side"
- Peter
| |
Stig H. Jacobsen (01-09-2004)
| Kommentar Fra : Stig H. Jacobsen |
Dato : 01-09-04 00:17 |
|
On Mon, 30 Aug 2004 22:51:54 +0200, Peter Lykkegaard wrote:
> Tjoo, på MSSQL ville jeg bruge en Left Join
> http://www.devguru.com/Technologies/jetsql/quickref/rightjoin.html
> Man kan så tjekke for NULL værdier på den "højre side"
Hmm, kunne ikke lige få det til at virke med MySQL. Har du et
eksempel i MSSQL-SQL?
--
Stig
(remove the 'no's to send me mail)
| |
Stig H. Jacobsen (01-09-2004)
| Kommentar Fra : Stig H. Jacobsen |
Dato : 01-09-04 15:54 |
|
On Tue, 31 Aug 2004 23:16:40 +0000 (UTC), Stig H. Jacobsen wrote:
>> Man kan så tjekke for NULL værdier på den "højre side"
> Hmm, kunne ikke lige få det til at virke med MySQL. Har du et
> eksempel i MSSQL-SQL?
Fandt ud af det..
SELECT c.custno
FROM customers c
LEFT JOIN deleted_customers d
ON c.custno = d.custno
WHERE d.custno IS NULL
Er dog lidt forvirret over c.custno=d.custno, fordi de er jo
netop forskellige (d.custno er NULL), men så længe det virker..
Tak for hjælpen, Peter!
--
Stig
(remove the 'no's to send me mail)
| |
Kristian Damm Jensen (02-09-2004)
| Kommentar Fra : Kristian Damm Jensen |
Dato : 02-09-04 06:28 |
|
"Stig H. Jacobsen" <usenet_dk@nonogoth.dk> wrote in message news:<ch4nqp$qrp$1@news.cybercity.dk>...
> Er dog lidt forvirret over c.custno=d.custno, fordi de er jo
> netop forskellige (d.custno er NULL), men så længe det virker..
Du har brug for at læse op på, hvordan et outer join virker...
VH
Kristian
| |
Stig H. Jacobsen (03-09-2004)
| Kommentar Fra : Stig H. Jacobsen |
Dato : 03-09-04 13:27 |
|
On 1 Sep 2004 22:27:50 -0700, Kristian Damm Jensen wrote:
>> Er dog lidt forvirret over c.custno=d.custno, fordi de er jo
>> netop forskellige (d.custno er NULL), men så længe det virker..
> Du har brug for at læse op på, hvordan et outer join virker...
Jeps - hvis jeg havde styr på join's, så havde jeg jo ikke
behøvet spørge her til at starte med
Tak for hjælpen,
--
Stig
(remove the 'no's to send me mail)
| |
Peter Lykkegaard (01-09-2004)
| Kommentar Fra : Peter Lykkegaard |
Dato : 01-09-04 15:55 |
|
Stig H. Jacobsen wrote in a message
> Hmm, kunne ikke lige få det til at virke med MySQL. Har du et
> eksempel i MSSQL-SQL?
Den her vil finde alle ordrer uden tilhørende linjer
select H.OrderID
From OrderHeader H
Left Join OrderItems I
On H.OrderID = I.OrderID
Where I.OrderID Is Null
Og den her finder alle linjer uden ordrehoved
select I.OrderID
From OrderHeader H
Right Join OrderItems I
On H.OrderID = I.OrderID
Where H.OrderID Is Null
hth/Peter
| |
|
|