Czy mozliwe jest wybranie w 1 selekcie dwoch roznych wartosci

Odpowiedz Nowy wątek
2018-03-13 16:20
0

Witam.
Mam 2 tabelki. Pierwsza zawiera taki rekord:
Id Nazwa Nr1 Nr2
3 Cos 2 4

a druga jest taka:
Id Number Opis
1 1 aaa
2 2 bbb
3 3 ccc
4 4 ddd
5 5 eee

Czy mozna napisac zapytanie select, ktore z pierwszej tabelki pobierze rekord:
3 cos bbb ddd

?

Pozostało 580 znaków

2018-03-13 16:25
0

Nie wiadomo - Twój opis nie ma sensu.


Pozostało 580 znaków

2018-03-13 16:31
0

NIe można, stwórz w drugiej tabeli kolumnę id_firsttable i możesz to wyciągnąć na podstawie relacji

Pokaż pozostałe 3 komentarze
@somekind: przeczytaj definicję - "dowolny podzbiór iloczynu kartezjańskiego" - np. 2 tabele a x b i wybieramy tylko te rekordy, które spełniają warunek równości klucza obcego i głównego. Pojedyncza tabela oczywiście też jest relacją. - piotrpo 2018-03-13 20:48
Owszem, jeżeli wykonamy połączenie dwóch relacji, to w wyniku otrzymamy także relację - generalnie zgodnie z algebrą relacji, to jakiekolwiek działania na relacjach zwracają także relacje. Tylko jaki to ma związek z jakimiś wirtualnymi "związkami pomiędzy tabelami"? - somekind 2018-03-13 21:28
Taki, że relację możesz zapisać jako dane, albo jako jej definicję - np. złączenie 1- z użyciem jakiejś tam pary kluczy. Z mojego skromnego doświadczenia wynika swoją drogą, że tabela jest określana relacją jedynie w literaturze i to raczej tej bardziej teoretycznej. Zdanie "tabela klienci jest połączona relacją -1 z tabelą typ_klienta" zostanie zrozumiane przez każdą osobę pracującą przy bazach danych, w przeciwieństwie do "stwórz iloczyn kartezjański relacji klienci i typ_klienta i wybierz podzbiór krotek spełniających warunek zgodności klucza obcego z głównym" - piotrpo 2018-03-14 06:51
@piotrpo: niepotrzebnie hiperbolizujesz. Nikt nie mówi utwórz iloczyn kartezjański ..., lecz całkowicie zwyczajne oraz - co najważniejsze - prawidłowe jest stwierdzenie Utwórz tabele klienci oraz zamówienia, połączone kluczem obcym .... Relacja jest synonimem tabeli, nie klucza obcego, i wykorzystywanie tego określenia w nieprawidłowy sposób jest popularne, lecz nieprawidłowe. Informatyka oraz matematyka są naukami ścisłymi - bądźmy zatem precyzyjni, a nie dostosowujmy definicje pod swoje widzimisię. - Patryk27 2018-03-14 07:11
To, że zdanie zostanie zrozumiane (i nie przez każdą osobę, jedynie przez polskich fachowcuf), nie znaczy, że nie jest głupie i bezsensowne. Ludziom, którzy tak mówią nie chodzi o relacje tylko o powiązania, których implementowane są przez klucze obce, które absolutnie NIC wspólnego z relacjami nie mają. - somekind 2018-03-14 12:42

Pozostało 580 znaków

2018-03-13 16:44

Można. Zakładając, że tabele nazywają się odpowiednio a i b:

SELECT a.id, b.nazwa, t1.nazwa, t2.nazwa
FROM a
   INNER JOIN b t1 ON a.nr1 = t1.id
   INNER JOIN b t2 ON a.nr2 = t2.id
WHERE
   a.id = 3

Pozostało 580 znaków

2018-03-13 18:21
0

Nie napisałeś precyzyjnie o co chodzi. Ja interpretuje tak postawiony problem jak wybranie z tabeli1 rekordu o ile w tabeli2 istnieje wpis o takim samym id.

Select * from tabEla a where exists (Select 1 from inna b where a.id=b.id);

Pudło. W odpowiedzi dostaniesz pusto albo 3 cos 2 4. Miało być 3 cos bbb ddd. Przykład jest jednoznaczny. - jarekczek 2018-03-13 18:49
@jarekczek: celna uwaga :) - yarel 2018-03-13 20:39

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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

Robot: CCBot