• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

SQL - problem z JOIN

Object Storage Arubacloud
0 głosów
182 wizyt
pytanie zadane 31 maja 2020 w SQL, bazy danych przez Iwoo_Max Nowicjusz (120 p.)

Dzień dobry :)

Mam problem z połączeniem dwóch tabel a dokładnie widoków wcześniej stwonych przez mnie. Próbowałam LEFT, RIGHT i INNER. I albo pojawiają mi się wartości NULL z jednej strony albo z drugiej albo wyrzuca mi same nagłówki.

Mam widoki Tilesv:

I SalariesV:

Tabela TilesV jest o wiele wieksza, ale mnie interesują tylko watości wspólne z tabelą SalariesV. Pracuję na phpmyadmin.

Moje błędne połączenie:

SELECT sv.emp_no, tv.emp_no FROM Tilesv AS tv LEFT JOIN Salariesv AS sv ON sv.emp_no = tv.emp_no

 

Bardzo dziękuję za każdą pomoc

 

komentarz 31 maja 2020 przez adrian17 Ekspert (344,860 p.)
A co się dzieje, gdy użyjesz zwykłego `JOIN`?

1 odpowiedź

0 głosów
odpowiedź 31 maja 2020 przez bwaluk Mądrala (5,440 p.)

Jeśli inner join nie działa (masz w odpowiedzi same nagłówki) to niemal na pewno nie masz części wspólnych między tymi tabelami. 

SELECT 
        sv.emp_no
       ,tv.emp_no 
FROM tilesv AS tv 
INNER JOIN salariesv AS sv ON sv.emp_no = tv.emp_no 

 

komentarz 31 maja 2020 przez Iwoo_Max Nowicjusz (120 p.)

Gdy użyłam

SELECT * FROM Tilesv AS tv INNER JOIN Salariesv AS sv ON sv.emp_no = tv.emp_no

albo zwykłego JOIN, to zwróciło mi:

Może mogłam coś popsuć w  czasie tworzenia widoków?

komentarz 31 maja 2020 przez bwaluk Mądrala (5,440 p.)

Co zwraca takie zapytanie:

SELECT *
FROM Salariesv
WHERE emp_no >= 10001 AND emp_no <= 10005

 

komentarz 31 maja 2020 przez Iwoo_Max Nowicjusz (120 p.)
Też nic nie zwróciło. W Salariesv emp_no  jest w przedziałach 201772 do  207009 włącznie
komentarz 31 maja 2020 przez bwaluk Mądrala (5,440 p.)
No to inner zwraca pustkę, bo nie ma części wspólnych. Przy tworzeniu widoków musiałaś coś pomieszać z danymi.
komentarz 31 maja 2020 przez Iwoo_Max Nowicjusz (120 p.)
Tak teraz sprawdziłam, w wdoku projektu że nie mam relacji. W jaki sposób można je stworzyć za pomocą SQL albo w samym phpmyadmin?
komentarz 31 maja 2020 przez Iwoo_Max Nowicjusz (120 p.)
To mój widok i nie wiek jak przypisać klucz po emp_no

CREATE VIEW Salariesv AS SELECT emp_no, salary FROM salaries WHERE to_date = '9999-01-01' AND emp_no IN (SELECT emp_no FROM salaries GROUP by emp_no HAVING MAX(to_date) > CURRENT_DATE)
komentarz 31 maja 2020 przez bwaluk Mądrala (5,440 p.)
Widoki nie mają kluczy. Problem jest zupełnie gdzie indziej. Dane brane do widoku Salariesv są tak okrojone, że nie pokrywają się z danymi w widoku Tilesv. To jest prawdziwy problem.

Podobne pytania

+1 głos
1 odpowiedź 171 wizyt
pytanie zadane 27 grudnia 2020 w PHP przez Paweł Barszcz Użytkownik (950 p.)
0 głosów
1 odpowiedź 300 wizyt
0 głosów
1 odpowiedź 138 wizyt
pytanie zadane 5 grudnia 2020 w SQL, bazy danych przez lumix97 Nowicjusz (120 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...