Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Skomplikowany join,podzapytanie
qasz
post
Post #1





Grupa: Zarejestrowani
Postów: 43
Pomógł: 2
Dołączył: 18.05.2010
Skąd: Norwich

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
eccocce
post
Post #2





Grupa: Zarejestrowani
Postów: 165
Pomógł: 5
Dołączył: 10.07.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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ś.
Go to the top of the page
+Quote Post
qasz
post
Post #3





Grupa: Zarejestrowani
Postów: 43
Pomógł: 2
Dołączył: 18.05.2010
Skąd: Norwich

Ostrzeżenie: (0%)
-----


Przecież napisałem, pierwsza tabela : ID, druga tabela : ID_pierwszej, Nazwa , co mi da sam join ?
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Laczy 2 tabele w zapytaniu.


--------------------
Go to the top of the page
+Quote Post
qasz
post
Post #5





Grupa: Zarejestrowani
Postów: 43
Pomógł: 2
Dołączył: 18.05.2010
Skąd: Norwich

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
wookieb
post
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




  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ć.


--------------------
Go to the top of the page
+Quote Post
qasz
post
Post #7





Grupa: Zarejestrowani
Postów: 43
Pomógł: 2
Dołączył: 18.05.2010
Skąd: Norwich

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
wookieb
post
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A daj proszę zapytanie oraz schemat tabel jak możesz (show create table) to coś wymyślimy.


--------------------
Go to the top of the page
+Quote Post
qasz
post
Post #9





Grupa: Zarejestrowani
Postów: 43
Pomógł: 2
Dołączył: 18.05.2010
Skąd: Norwich

Ostrzeżenie: (0%)
-----


  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)


Ten post edytował qasz 10.11.2010, 12:15:05
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 18:12