Zapytanie do złączenia 2 tabel

Odpowiedz Nowy wątek
2019-08-05 16:10
0

Witam,

Mam 2 tabele:
samochody [ident,nr_rejestracyjny]
naprawy [id_samochod,usluga,data]
usluga = (1,2,3)
1 – była robiona naprawa
2 - był robiony przegląd
3 – był robiony przegląd okresowy

W zapytaniu chciałbym otrzymać wynik w którym będą wszystkie samochody w których nie było robionego żadnego przeglądu czyli naprawy.usluga <>2 and naprawy.usluga <>3.
Napisałem tak:

SELECT nr_rejestracyjny FROM samochody INNER JOIN naprawy on samochody.ident = naprawy.id_samochod
where naprawy.usluga <>2 and naprawy.usluga <>3

Ale zwraca mi wszystkie po kilka takich samych samochodów (w zależności od tego ile było napraw)
Jak poprawić zapytanie żeby numer każdego samochodu pojawił się tylko raz bez względu na ilość napraw ?

edytowany 1x, ostatnio: cerrato, 2019-08-05 16:31

Pozostało 580 znaków

2019-08-05 16:29
0

Pewnie SELECT DISTINCT

Pozostało 580 znaków

2019-08-05 17:41
0

Select * from samochody where id_samochod not in (select id_samochody from naprawy where usługa on (2,3))

Pozostało 580 znaków

2019-08-06 08:51
0

Dzięki,
Powinno być chyba "where usługa in (2,3)", w każdym razie zmieniłem i działa.
Jest tylko jeden problem działa bardzo wolno (wynik dla kilkuset rekordów po 5 min.) a jak jeszcze ktoś pracuje na bazie to zawiesza program.

Pozostało 580 znaków

2019-08-06 09:11
0

Tak, tak powinno być. Komórka poprawiła :)
Co do szybkości. Dodaj index na usluga w tabeli naprawy

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0