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

mysql - dwa seelecty union all .- problem

VPS Starter Arubacloud
0 głosów
235 wizyt
pytanie zadane 25 listopada 2018 w SQL, bazy danych przez niezalogowany

Hej, próbuje utworzyc zapytanie, które wyciągnie mi wszystkie dane z tabeli, dodatkowo doda kolumne z wynikiem funkcji DATEDIFF.

SELECT * FROM wypozyczenia

SELECT DATEDIFF(datazwrotu, datawyp) from wypozyczenia

 

Ktoś może coś podpowiedzieć? :)

1 odpowiedź

0 głosów
odpowiedź 25 listopada 2018 przez Tomek Sochacki Ekspert (227,510 p.)
Jeśli korzystasz z UNION to obie tabele, a raczej zwrotki z selectów muszą zawierać takie same pola i o tym właśnie masz przecież błąd. Po za tym poczytaj o różnicy między union a union all bo któreś chyba nie kasowało duplikatów jeśli dobrze pamiętam, ale mogę się tu mylić bo w mysql już dawno nie siedziałem.
komentarz 25 listopada 2018 przez niezalogowany
tak, wlasnie potestowalem union i jest to calkowicie co innego niz poszukuje.
komentarz 25 listopada 2018 przez Tomek Sochacki Ekspert (227,510 p.)
Nie znam dokładnie problemu, struktury itp. ale może Ty po prostu szukasz odpowiedniego JOINa? (tak mi coś wygląda, że to by rozwiązało problem...)
komentarz 25 listopada 2018 przez niezalogowany
wlasnie czytam na ten temat, za chwile dam znac czy rozwiazalo problem
komentarz 25 listopada 2018 przez niezalogowany
edycja 25 listopada 2018

@Tomek Sochacki,

Żadne joiny :D

wystarczyło sporządzić takie o to zapytanie:

SELECT DATEDIFF(wypozyczenia.datazwrotu, wypozyczenia.datawyp) as dlugosc, wypozyczenia.datawyp, wypozyczenia.datazwrotu as dlugosc from wypozyczenia

Przy okazji jednak udało mi sie utrwalić INNER JOIN tworzac takie o to (mam nadzieje poprawne) zapytanie, wyciagajace dane z trzech tabel. Proszę o sprawdzenie :)

select DATEDIFF(wypozyczenia.datazwrotu, wypozyczenia.datawyp) as dlugosc, 
wypozyczenia.datawyp, wypozyczenia.datazwrotu, wypozyczenia.naleznosc,
auta.model, auta.marka, auta.ubezpieczenie,
klienci.imie, klienci.nazwisko
from wypozyczenia
join auta
on wypozyczenia.idauta = auta.idauta
join klienci
on wypozyczenia.idklienta = klienci.idklienta

 

1
komentarz 25 listopada 2018 przez Tomek Sochacki Ekspert (227,510 p.)
hehe no widzisz :) czasami warto na chwilę odejść od tematu i spróbować też wrócić za 30-60 minut, nieraz już okazało się, że człowiek na siłę szukał problemu nie tam gdzie jest... ile już razy to przerabiałem w pracy :D

 

Co do zapytania to oki, ale uważaj z joinami na dużych tabelach bo to dość pracochlonny proces dla bazy. Jeśli masz sporo złączeń itp. to poczytaj sobie też o widokach w mysql. Generalnie chodzi o to, że tworzysz jakby tabelę dodatkową (widok), który jest wynikiem różnych skomplikowanych zapytań. Następnie w aplikacji pobierasz dane z tego widoku. Plus jest taki, że w apce robisz banalne select x, y, z from widok, a cała logika join, union itp. itd. jest na bazie.

Oczywiście są przeciwnicy tej metody, którzy wolą logikę pchać do apki... pracowalem i z jednym i z drugim podejściem i w sumie wszystko zależy od aplikacji, struktury, ilości różnych baz na jakich pracujesz itp. itd.

Podobne pytania

0 głosów
1 odpowiedź 986 wizyt
pytanie zadane 1 maja 2017 w SQL, bazy danych przez xyuru Obywatel (1,000 p.)
0 głosów
1 odpowiedź 692 wizyt
0 głosów
2 odpowiedzi 1,059 wizyt
pytanie zadane 30 listopada 2020 w C i C++ przez ResCrove Obywatel (1,700 p.)

92,454 zapytań

141,262 odpowiedzi

319,089 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...