Oracle - czy takie zapytanie da się napisać

Odpowiedz Nowy wątek
2015-01-30 21:24
0

Witam,
Mam tabelę, w której mam dwie kolumny string, int.
Tzn, Imię, wiek: Ta kolumna nazywa się Osoba.
Mam też inną tabelę DUŻA gdzie mam dużo różnych kolumn. Jest w śród nich kolumna: nazwa (string) oraz ilość (int)
Czy mogę teraz zadać takie pytanie w Oracle (pytam, bo chcę wiedzieć a nie mam dostępu, żeby to sprawdzić)

SELECT * FROM DUŻA WHERE (Duża.nazwa, Duża.ilość) IN Osoba.

Chciałbym, aby to zapytanie wybrało te wiersze z Duża, które mają swoje odpowiedniki w tabeli "Osoba", tzn jest wiersz imię równy wartosci pola nazwa oraz w tym samym wierszu wartosc pola wiek = wartosci pola ilosc

Pozostało 580 znaków

2015-01-31 00:19
0

SELECT * FROM Duża JOIN Osoba ON (tutaj porównanie wspólnych kolumn w tabeli Duża i Osoba) WHERE (tutaj warunki, które chcesz, aby były spełnione)

edit.

jak w ogóle możesz cokolwiek testowac bez testów?

edit.

po co w ogóle Ci tabela Osoba skoro WSZYSTKIE dane z Osoba i tak trzymasz w Duża?

edytowany 3x, ostatnio: gośćabc, 2015-01-31 00:21

Pozostało 580 znaków

2015-01-31 00:31
0

Oj, no zadałem pytanie teoretyczne. Odpowiedz na nie, wiem jak się pisze zapytani.

Pozostało 580 znaków

2015-01-31 08:33
0

@xawery no chyba jednak nie wiesz jak skoro nie wiesz co to jest join.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2015-01-31 09:43
0

Zrozumiał ktoś pytanie ? Na litośc, ja własnie chcę zrobić to bez JOINA

Pozostało 580 znaków

2015-01-31 10:37
Złoty Krawiec
0

SELECT FROM DUZA AS D WHERE ( SELECT FROM MALA AS M WHERE D.imie = M.imie AND D.wiek = M.wiek)

Pozostało 580 znaków

2015-01-31 10:37
Złoty Krawiec
0
  • SELECT FROM DUZA AS D WHERE EXISTS( SELECT FROM MALA AS M WHERE D.imie = M.imie AND D.wiek = M.wiek)

Pozostało 580 znaków

2015-01-31 14:59
0
xawery napisał(a):

Zrozumiał ktoś pytanie ? Na litośc, ja własnie chcę zrobić to bez JOINA

A gdzie o tym niby wspominasz, to raz. Dwa, optymalizator kosztowy i tak zmieni to podzapytanie na joina, więc nie bardzo rozumiem po co kombinować.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2015-01-31 15:50
PewienStudent
0

@Shalom: mam pytanie związane z tematem.

Jak wiadomo JOINy są fajne póki nie tworzymy złączeń między wielkimi, a małymi tablicami (a optymalizator chyba może się sporadycznie pomylić).

Czy prawdą jest, że query hint w Oracle może służyć do takiego sterowania optymalizatorem, aby np. powstrzymać go przed zrobieniem JOINa jeśli wiemy, że na pewno nie chcemy zrobić złączenia?

Pozostało 580 znaków

2015-01-31 15:57
0

Optymalizator zwykle dobierze poprawnie algorytm i nie będzie złączał w złej kolejności ;)
Co do pytania to nie do końca rozumiem. Konieczność złączenia wynika z zapytania a nie z optymalizatora. Jak nie chcesz złaczenia to nie pisz zapytania które ma złączenie/podzapytanie.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2015-01-31 16:48
PewienStudent
0

@Shalom: moje pytanie jest bardziej ogólne, może powinno być w oddzielnym temacie.

Czy query hints to narzędzie do modyfikowania planu zapytania? Czy w ten sposób mogę sterować planem zapytania?

Z tego co przeczytałem to odpowiedź to tak.

Wiem, że w PostgreSQL nie ma takiej możliwości, gdyż twórcy uznali, że query hints są zwodnicze i powodują, że aplikacja wymaga częstej refaktoryzacji.

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