Należy wybrać tylko pierwszy wiersz z zapytania, które łączy tabele A i B. W tabeli B istnieje wiele rekordów o tej samej nazwie. W żadnej z dwóch tabel nie ma identyfikatorów. Nie mogę zmienić schematu, ponieważ nie jestem właścicielem DB.Wybierz pierwszy wiersz w połączeniu dwóch tabel w jednym oświadczeniu
TABLE A
NAME
TABLE B
NAME
DATA1
DATA2
Select Distinct A.NAME,B.DATA1,B.DATA2
From A
Inner Join B on A.NAME = B.NAME
To daje mi
NAME DATA1 DATA2
sameName 1 2
sameName 1 3
otherName 5 7
otherName 8 9
ale muszę odzyskać tylko jeden wiersz na imię
NAME DATA1 DATA2
sameName 1 2
otherName 5 7
udało mi się to zrobić dodając wynik do tabeli temp z kolumna tożsamości, a następnie wybierz minimalny identyfikator na nazwę.
Problem polega na tym, że wymagam tego w jednym komunikacie.
Na ostatnim wyciągu pojawia się drobna literówka. Powinien to być "IS NOT NULL" zamiast "IN NOT NULL". – mbp
+1 jesteś zbawicielem. Twój edited self join działa nawet w SQL CE, gdzie inne rozwiązania tego pytania nie wynikają z ograniczeń SQL CE. –