Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skomplikowany join,podzapytanie
Forum PHP.pl > Forum > Bazy danych > MySQL
qasz
Witam, potrzebuję połączyć 2 tabele, pierwsza tabela zawiera id powiązania do drugiej, w drugiej tabeli jest id, które stanowi powiązanie z pierwszą oraz nazwa. Chciałbym wyciągnąć dla każdego id z pierwszej tabeli 5 nazw, mała uwaga nie dla pojedynczego elementu z pierwszej tabeli, ale dla wszystkich.
eccocce
To weź zrób JOIN po id.

A tak poważnie, to daj kawałek pierwszej tabeli, kawałek drugiej tabeli i pokaż, co chciałbyś z nich wyciągnąć, bo ciężko coś konkretnego stworzyć na podstawie tego co napisałeś.
qasz
Przecież napisałem, pierwsza tabela : ID, druga tabela : ID_pierwszej, Nazwa , co mi da sam join ?
wookieb
Laczy 2 tabele w zapytaniu.
qasz
Cytat(wookieb @ 10.11.2010, 11:34:57 ) *
Laczy 2 tabele w zapytaniu.


No to Amerykę odkryłeś.

Przy zwykłym joinie zwróci mi np. :

nazwa1 a
nazwa2 a
nazwa3 a
nazwa4 a
nazwa5 a
nazwa6 a
nazwa7 b
nazwa8 b
nazwa9 b
nazwa10 b
nazwa11 b
nazwa12 b

A ja potrzebuję, że tylko ma być 5 razy a i 5 razy b itp. itd., dane przykładowe
wookieb
  1. SELECT (...) FROM tabela_1 INNER JOIN (SELECT (...) FROM tabela_2 WHERE id = tabela_1.id LIMIT 5)


Coś w tym stylu. Pisane z palca, musisz pokombinować.
qasz
Cytat(wookieb @ 10.11.2010, 11:47:52 ) *
  1. SELECT (...) FROM tabela_1 INNER JOIN (SELECT (...) FROM tabela_2 WHERE id = tabela_1.id LIMIT 5)


Coś w tym stylu. Pisane z palca, musisz pokombinować.


Niestety pobiera tylko 5 pierwszych.
wookieb
A daj proszę zapytanie oraz schemat tabel jak możesz (show create table) to coś wymyślimy.
qasz
  1. CREATE TABLE `tablica1` (
  2. `id` varchar(10) DEFAULT NULL,
  3. )
  4.  
  5. CREATE TABLE `tablica2` (
  6. `id` varchar(10) DEFAULT NULL,
  7. `nazwa` varchar(10) DEFAULT NULL,
  8. )
  9.  
  10. INSERT INTO `tablica` (`id`, `nazwa`) VALUES
  11. ('a', 'nazwa1'),
  12. ('b', 'nazwa2'),
  13. ('a', 'nazwa3'),
  14. ('a', 'nazwa4'),
  15. ('b', 'nazwa5'),
  16. ('a', 'nazwa6'),
  17. ('a', 'nazwa7'),
  18. ('b', 'nazwa8'),
  19. ('a', 'nazwa9'),
  20. ('a', 'nazwa10'),
  21. ('b', 'nazwa10'),
  22. ('b', 'nazwa11'),
  23. ('b', 'nazwa12'),
  24. ('a', 'nazwa13'),
  25. ('a', 'nazwa14'),
  26. ('b', 'nazwa15'),
  27. ('b', 'nazwa16'),
  28. ('b', 'nazwa17'),
  29. ('a', 'nazwa18'),
  30. ('b', 'nazwa19'),
  31. ('a', 'nazwa20'),
  32. ('b', 'nazwa21'),
  33. ('b', 'nazwa22'),
  34. ('b', 'nazwa23'),
  35. ('a', 'nazwa24');
  36.  
  37.  
  38. SELECT t1.nazwa FROM tablica1 INNER JOIN (SELECT id,name FROM tablica2 LIMIT 5) AS t1 ON (t1.id = tablica1.id)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.