Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pomoc w tworzeniu zaawansowanego zapytania
nixau
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 30.04.2006

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


Witam. Może ktoś z Państwa pomoże mi rozwiązać następujący problem.

Mamy 2 tabele

tabela "test" ma następujące komórki
id | nazwa | opis
1 | test | to jest test
2 | test 2 | to jest test 2
3 | ... | ...
4 | ... | ...

tabela "nazwa"

id | nazwa | wartości
1 | nazwa 1 | 1,2
2 | nazwa 2 | 1,4
3 | nazwa 3 | 1,4,2,3

jak zrobić zapytanie takie, że wybieram konkretny id z tabeli "nazwa" oraz wszystkie komórki z tabeli "test" które odpowiadają numeracji z tabeli "nazwa".wartości

Ja poradziłęm sobie tak (w skrócie):

select * from test;
...
$t[ id ] = nazwa;

select * from nazwa where id=5;
...
$w = explode(',', $wartosc)

for (...) echo $t[ ($w[$i]) ];

ale interesuje mnie bardziej profesjonalne podejście do tego problemu (może jest to możliwe zrobienie w jednym zapytaniu)


Przy okazji ma ktoś jakieś ciekawe tutoriale to opisu zaawansowanych zapytań w mysql? Tak żeby były jeszcze opisane przykłady z użyciem IF, oraz @ (np. @val := if (...)).
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Cytat
Niestety nie mogę stworzyć takiej konstrukcji jak Pan proponuje,[...]

Ale generalnie to strukture bazy mozesz zmienic?

Cytat
To tak jakbyśmy mieli tabelę "samochody", a druga tabela to "części" i w tabeli "samochody" dodając nowy samochód, dodalibyśmy (w jednej komórce) numery identyfikacyjne wszystkich użytych części (a to wszystko w jednym rekordzie).


Mozesz podac konkretne nazwy tabel i opisac co chcesz zrobic, bo nazwy takie jak 'nazwa', 'test' nie ulatwiaja rozwiazania problemu.

Przyklad z samochodami jest zrozumialy (ale nie wiem czy akurat tym sie zajmujesz).
Jesli samochod sklada sie z wielu czesci, i kazda czesc moze byc uzywa w wielu roznych samochodach (np. te same kola; i nie mowie tu o tej samej instancji czesci, bo przeciez nie zbudujesz dwoch samochodow z czterech kol (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )

Jak to ma w bazie wygladac (juz ci o tym pisali)
* Standardowa relacja wiele do wielu (+ agregacja (nie kompozycja)):

* Tabele:
Samochody ( id, nazwa , ...)
Czesci ( id, nazwa, ...)
Czesci_Samochody ( czesc_id, samochod_id ) -- umozliwi ci przypisanie wielu czesci do samochodow i umozliwi samochodowi skladanie sie z wielu czesci

Cytat
ps. ja ciągle się uczę mysql tak więc będe wdzięczny jak ktoś podzieli się ciekawymi opisami bardzo zaawansowanych zapytań i "sztuczek" w mysql (może być np. w języku angielskim).

Zalecam poznanie najpierw podstaw projektowania baz danych.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 14.10.2025 - 21:47