2016-03-21 16 views
0
değişken

içinde saklarken sadece En son seçilmemiş, tüm sütunları dönün ve şu ana kadar Aşağıdaki kod var: TemeldeVeri SE/SQL Sorgusu - Ben Veri SE bir sorgu oluşturmak çalışıyorum

DECLARE @ParentId int; 
DECLARE @AnswerId int; 

SELECT @ParentId = ParentId, @AnswerId = Id FROM Posts 
WHERE 
    OwnerUserId = 5620297 
AND 
    PostTypeId = 2; 

SELECT * FROM Posts 
WHERE 
    Id = @ParentId 
AND 
    AcceptedAnswerId != @AnswerId 

Sorgunun benim cevabım olan bir soru döndürmesi gerekir, ancak bir başkasının cevabı kabul edildi.

Yukarıdaki sorgu, ancak en yeni soru/cevapları kontrol eder. Yanıtladığım her soruyu kontrol edip geri göndermek için bunu nasıl değiştirebilirim?

cevap

1

Sen tabloları JOIN olmalıdır:

SELECT * 
FROM Posts P1 
INNER JOIN (SELECT ParentId, Id 
      FROM Posts 
      WHERE OwnerUserId = 5620297 
      AND PostTypeId = 2) P2 
    ON P1.Id = P2.ParentId 
    AND P1.AcceptedAnswerId <> P2.Id; 
İlgili konular