Ostatnio w moim projekcie musiałem porównać dwie różne tabele. Porównanie dwóch tabel w MySQL polegało na tym, że w tabeli 'itemsaldo’ miałem cały stan magazynowy, a w tabeli 'holdlist’ materiał zablokowany przez dział QA – czyli ze statusem HOLD.
UWAGA! Ten post został zamieszczony na mojej starej stronie, która dawno temu padła. Archiwizuje stare artykuły których nie zweryfikowałem, może kiedyś się przydadzą – proszę z rezerwą podchodzić do treści tu zwartych.
Aby stworzyć polecenie w SQL bardzo pomogła mi ta strona: publicmind.in
A więc, aby wyodrębnić tylko dobry materiał, i pokazać wszystkie kolumny z tabeli 'itemsaldo’ zastosowałem takie polecenie:
Select * from itemsaldo left join holdlist on itemsaldo.LOCATIONINFO = holdlist.LOTWZ where holdlist.LOTWZ is NULL;
Normalnie w 'itemsaldo’ miałem 105 wierszy, po tym poleceniu pokazują się 103 wiersze, czyli dwa LOTY były zablokowane. Jednakże, musiałem z tabeli 'itemsaldo’ wyodrębnić tylko tzw. numery lot. Dlatego też, użyłem takiego polecenia:
Select LOCATIONINFO from itemsaldo left join holdlist on itemsaldo.LOCATIONINFO = holdlist.LOTWZ where holdlist.LOTWZ is NULL;
Ale – tak jest jeszcze jedno ale – musiałem stworzyć kod, który będzie pokazywał tylko dobre jakościowo loty, oraz tylko kolumnę z lotami, ale również będą pokazywane loty tylko i wyłącznie danego modelu (którego oznaczenie zostało wybrane przez usera w comboboxie). Dlatego też stworzyłem taki kod:
Select LOCATIONINFO from itemsaldo left join holdlist on itemsaldo.LOCATIONINFO = holdlist.LOTWZ where holdlist.LOTWZ is NULL AND itemsaldo.ARTICLENO='6308L-5138A';