![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 18.06.2008 Skąd: Reda Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Nie wiem jak dobrze zatytuowac watek (jakby co poprawie) i jak nawet szukac odpowiedzi. Mam dwie tabele mySQL: Pierwsza tabela: pierwsza osoba - id_dzialu1 druga osoba - id_dzialu2 Druga tabela: id_dzialu1 - pierwszy dzial id_dzialu2 - drugi dzial Zapytanie:
ale chcialbym, zeby zamiast wartosci z kolumny 2 pierwszej tabeli (id_dzialu) od razu zwracal kolumne 2 z drugiej tabeli (nazwa dzialu). Jak to skonstruowac? Ten post edytował bulimaxiu 10.06.2010, 14:47:06 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 358 Pomógł: 78 Dołączył: 4.11.2008 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
poczytaj o joinach
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 19 Dołączył: 24.12.2003 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
Witam. Nie wiem jak dobrze zatytuowac watek (jakby co poprawie) i jak nawet szukac odpowiedzi. Mam dwie tabele mySQL: Pierwsza tabela: pierwsza osoba - id_dzialu1 druga osoba - id_dzialu2 Druga tabela: id_dzialu1 - pierwszy dzial id_dzialu2 - drugi dzial Zapytanie:
ale chcialbym, zeby zamiast wartosci z kolumny 2 pierwszej tabeli (id_dzialu) od razu zwracal kolumne 2 z drugiej tabeli (nazwa dzialu). Jak to skonstruowac? To może
Nie wiem czy dobrze dałem kolumnę w USING bo trochę niejasno napisałeś jakie masz konkretnie kolumny w obu tabelach i jakie chcesz mieć w wynikach. Ale w zasadzie jeśli kolumny po których chcesz łączyć tabele są o takie samej nazwie to podmień sobie nazwę w USING |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 9 Dołączył: 14.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
I pracujesz na obydwu tabelach połączonych referencją. Oczywiście ten przykład może być rozbieżny z twoją bazą danych. Jak trzeba napiszę krok po kroku wzorzec. Jeśli podałem zły przykład to można też zastosować:
Tu nie musisz mieć stworzonych relacji w tabelach. PS - czytając o JOIN'ach jak dobrze radzi 'zordon', czytaj o JOIN'ach w MySQL, jeśli na nim pracujesz. Jest lekka rozbieżność, jeśli chodzi o JOIN'y w rożnych serwerach SQL. Ten post edytował Wiktor P. 10.06.2010, 20:04:52 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 18.06.2008 Skąd: Reda Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za porady.
Rzeczywista tabela: tabela_produktów: opt_name, producent_id tabela_producentów: producent_id, opt_name (nie wiedziałem, że będzie konflikt nazw kolumn) Muszę otrzymać rezultat w tabeli: `tabela_produktów`.`opt_name` | `tabela_producentow`.`opt_name` skutkuje zrozumiałym komunikatem "Column 'opt_name' in where clause is ambiguous", więc tym może się nie udać. Działa poprawnie gdy nie ma kolizji nazw kolumn. jajcarzd1: Wyszło mi takie zapytanie ale niestety error SYNTAX. Próbowałem kilka innych kombinacji, ale też bez rezultatu Przy The used SELECT statements have a different number of columns Wydaje mi się, że INNER może zadziałać, ale trzeba by było zmienić nazwę kolumny wynikowej, np. . Jest na to polecenie? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 19 Dołączył: 24.12.2003 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
Jeżleli używasz aliasów tabel to używaj potem w zapytaniu przed każdą kolumną tego aliasu, po drugie jeśli masz takie samy nazwy kolumn w obu tabelach to możesz użyć aliasu dla jednej
Możesz też użyć zmiast USING innej składi jeśli kolumny po których łączysz tabele są o innej nazwie np.
Ten post edytował jajcarzd1 11.06.2010, 11:35:37 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 18.06.2008 Skąd: Reda Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za podpowiedzi. Ostatecznie zadziałało
Niestety komenda USING zwracała syntax. Aliasy okazały się zbędne. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 19 Dołączył: 24.12.2003 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 18.06.2008 Skąd: Reda Ostrzeżenie: (0%) ![]() ![]() |
Pozwolę jeszcze jedno pytanko w tej kwestii: Czy można JOINować oprócz innych tabel również tabele z innych baz danych? (oddzielne loginy i hasła)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 01:38 |