Wczytanie wszystkich recordów, zamiast jednego

Wczytanie wszystkich recordów, zamiast jednego
Paweł Płowiec
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 11
0

Witajcie,
Mam otóż taki problem, moje zapytanie do bazy

Kopiuj
select * from table1 where name_a  IN (select name_a from table2 where ... )

to zapytanie do table2 zwraca więcej niż 1 row. to zapytanie działa ale zwraca mi tylko jeden wiersz i to ostatni,
Jak skonstruować zapytanie by docelowy select * table1 zwracał prawidłowy wynik, czyli wszystkie pozycje w tabeli o które pytam?
Z góry dzięki za odp.

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3891
0

No bez szkalnej kuli ciężko odpowiedzieć. Na logikę w table1 masz 1 rekord z wartością name_a z tabeli table2.

Przygotuj próbkę danych i wtedy możemy wrócić do rozmowy.

Paweł Płowiec
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 11
0
Kopiuj
|table 1
+---------+--------------------+
|id_tab1  |   name 		| inne dane
|1           | 	A
|2		            B
|3		            A
|4		            C	
|5		            B


|table2
+--------+-------+-------+
|id_tab2 | name | inne dane
|1	            | A	
|2	            | C	
|3	           |   C	
|4	           | A	
|5	           | A	

select w tab2 wyszukuje informacje które potrzebuje, załóżmy że jest to A . Wyników jest 3
częścią wspólną jest name Ja chcę uzyska wszystkie informacje z tabeli_1 ale tylko te które pokrywają się z wynikem z table2

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3891
1

Coś nie tak, zapytanie:

Kopiuj
Select * from table1 where name in (select name from Table2)

zwraca rekordy 1,3,4

http://sqlfiddle.com/#!9/82241d3/1

Więc napisz to zapytanie tak aby zreprodukować problem

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
0
Paweł Płowiec napisał(a):

select w tab2 wyszukuje informacje które potrzebuje, załóżmy że jest to A . Wyników jest 3
częścią wspólną jest name Ja chcę uzyska wszystkie informacje z tabeli_1 ale tylko te które pokrywają się z wynikem z table2

Czyli chcesz zrobić intersekcję tabeli po kluczu?

Google: "mysql intersect table by column"

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.