我有一张表dzialki_wlasciciele
id_dzialki | id_wlasc | id_malz |
1 | 1 | 2
1 | 2 | 1
2 | 1 | 2
3 | 1 | 2
现在我需要两个查询 - 一个返回两行id_dzialki = 1
(其中有两个id_wlasc
,其中第二行的id_wlasc
=第一行的id_malz
< / p>
第二个查询应返回id_dzialki = 2 and = 3
(其中没有第二条记录id_wlasc = id_malz
)
我有第二个问题:
select *
from dzialki_wlasciciele dw1
where dw1.ID_WLASC = 1
and dw1.id_dzialki not in (select dw2.id_dzialki
from dzialki_wlasciciele dw2
where ID_malz = 1)
但第一个问题呢?
答案 0 :(得分:0)
如果我理解正确:
DECLARE @dzialki_wlasciciele TABLE
(
id_dzialki INT ,
id_wlasc INT ,
id_malz INT
)
INSERT INTO @dzialki_wlasciciele
VALUES ( 1, 1, 2 ),
( 1, 2, 1 ),
( 2, 1, 2 ),
( 3, 1, 2 )
SELECT d1.*
FROM @dzialki_wlasciciele d1
JOIN @dzialki_wlasciciele d2 ON d2.id_dzialki = d1.id_dzialki
AND d2.id_wlasc = d1.id_malz
WHERE d1.id_dzialki = 1
输出:
id_dzialki id_wlasc id_malz
1 1 2
1 2 1