![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 1 Dołączył: 27.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Czy jest w mysqlu taka możliwość, aby złączenie tabel zależało od pewnego warunku, np.
męczę się nad tym od jakiegoś czasu i nie mogę znaleźć rozwiązania. Przypuszczam, że nie da się tego rozwiązać, ale może ktoś z Was miał podobne doświadczenie? |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
da się to zrobić... zakładam 3 tabele:
Ta => (id_a, id_join, pole) Tb => (id_b, opis) Tc => (id_c, opis) wtedy zapytanie wygląda tak:
Powodzenia. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
A co jeśli tabele Tb i Tc się różnią? Inna ilość i format kolumn...
Ten post edytował JoShiMa 14.01.2009, 11:43:32 |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
niemożliwe, w wyniku SQL nie możemy dostać w jednym wierszu 5 pól a w innym 9 pól...
wynikiem zapytania SQL jest zawsze macierz. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Tak mi się właśnie wydawało
|
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
można zbudować potworka, który po stronie sql upakuje tą zmienną ilość pól do pojedynczego pola w CONCAT_WS(), a potem po stronie PHP rozbijasz to sobie z powrotem w explode() ... ale odradzam takie rozwiązanie. taka potrzeba wyraźnie wskazuje na niedopatrzenie w strukturze danych, i lepiej sie skupić na zmianie tej struktury.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
Cytat Nie sądzę, żeby to było niedopatrzenie i w ogóle nie widzę powodu zmieniać struktury danych. no fakt. to z pewnością niedopatrzenie projektantów MySQL, że nie przewidzieli możliwości zwracania w jednym wyniku wierszy o różnej ilości kolumn i różnych typach danych... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.09.2025 - 18:45 |