Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Łączenie tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
dyktek
Witam, mam tabele z jakimiś tam produkatami

Kod
---------prod------------
--id-----nazwa-----kat---



każdy produkt ma przypisaną kategorie i podaktegorie na zasadzie takiej id_kategori,id_podkategorii

czyli np. 3,4

no i chciałem wyciągnąć info o nazwie kategorii jedym zapytaniem

no i gdybym w polu kategoria miał zapisaną tylko jedną liczbe kategorii czyli np, 3
to robie mniej wiecej takie zapytanie
  1. SELECT id_prod, nazwa, kategoria
  2. FROM mod_produkty
  3. LEFT JOIN mod_kategorie ON mod_produkty.kategoria = mod_kategorie.id


no i teraz czy istnieje funkcja w mysql-u, która zadziała tak jak explode w php abym mogł sobie wyciągnąć ta kategorie na zasadzie LEFT JOIN
spenalzo
substring_index(pole,',',1)
wiecej ----> manual
dyktek
wykorzystałem Twoją porade i wszystko działa fajnie tylko mam problem z uzyciem tej funkcji w LEFT JOIN-ie moje zapytanie wygląda tak

  1. SELECT id_prod, mod_kategorie.nazwa AS nazwa, mod_kategorie.nazwa AS nazwakat
  2. FROM `mod_produkty`
  3. LEFT JOIN `mod_kategorie` ON `mod_produkty.substring_index(kate,',',1)` = `mod_kategorie.id`


no i zwraca mi błąd Unknown column 'mod_produkty.substring_index(kate,',',1)' in 'on clause' czyli tak jakby ta funkcja się nie wykonywała, można jej uzyc w left joine w ten sposób?
elessar
Bo to masz zle, substring_index to jest funkcja mysql
  1. mod_produkty.substring_index(kate,',',1)


wiec jak juz to powinienes dac
  1. substring_index(mod_produkty.kate,',',1)
dyktek
spoko dzięki działa smile.gif
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.