Poszukuje kursu MySQL/SQl z prawdziwego zdarzenia, a mianowicie chodzi mi o taki kurs, który by wyjaśniał sposób uzycia np: LEFT JOIN itp...
Pozdrawiam
Poszukuje kursu MySQL/SQl z prawdziwego zdarzenia, a mianowicie chodzi mi o taki kurs, który by wyjaśniał sposób uzycia np: LEFT JOIN itp...
Pozdrawiam
Może trochę nie na temat, ale osobiście nie lubę tych JOINów używać :]. Mało intuicyjne dla mnie to jest. Radzę sobie z łączeniem tabel przez odpowiedni warunek WHERE.
dla angel2953:
Jak znasz dobrze angielski to polecam edytor do baz:
EMS w tym przypadku "EMS MySQL Manager" jest tam taki fajny maly pliczek
"MySQL Reference" (mysql.chm)
W nim jest WSZYSTKO :) czego nie zapragniesz tam jest. Jedna z leprzych kompediow wiedzy z jakim sie spotkalem
BTW:
Adam.Pilorz napisał(a)
Może trochę nie na temat, ale osobiście nie lubę tych JOINów używać :]. Mało intuicyjne dla mnie to jest. Radzę sobie z łączeniem tabel przez odpowiedni warunek WHERE.
A zastanawiales sie kiedys jak dziala JOIN a jak zwykly warunek WHERE ??
JOIN operuje na tablicach ktore pasuja do warunku, tzn jak jakis rekord nie pasuje do wyrazenia, to w nastepnych warunkach nie jest brany pod uwage.
WHERE dzila na zasadzie iliczynu kartezjanskiego.
Np.: masz 3 tabele:
A: B:
id_a | nazwa id | id_a | nazwaa
-----+------ ---+------+-------
1 | naz1 1 | 1 | naaz1
2 | naz2 2 | 1 | naaz2
3 | naz3 3 | 2 | naaz3
i zrobisz:
SELECT A.*, B.* FROM A, B WHERE A.id_a = B.id_a AND B.id = 3
to baza zrobi tak:
id_a | nazwa | id | id_a(2) | nazwaa
-----+-------+----+---------+------
1 | naz1 | 1 | 1 | naaz1
1 | naz1 | 2 | 1 | naaz2
1 | naz1 | 3 | 2 | naaz3
2 | naz2 | 1 | 1 | naaz1
2 | naz2 | 2 | 1 | naaz2
2 | naz2 | 3 | 2 | naaz3
3 | naz3 | 1 | 1 | naaz1
3 | naz3 | 2 | 1 | naaz2
3 | naz3 | 3 | 2 | naaz3
id_a | nazwa | id | id_a(2) | nazwaa
-----+-------+----+---------+------
1 | naz1 | 1 | 1 | naaz1
1 | naz1 | 2 | 1 | naaz2
2 | naz2 | 3 | 2 | naaz3
id_a | nazwa | id | id_a(2) | nazwaa
-----+-------+----+---------+------
2 | naz2 | 3 | 2 | naaz3
Jak widac pierwszy krok jest dosc niepokojacy, jak mamy przeleciec przez 3 lub 4 tabele, a w kazdej jest min 5000 rekordow :D
INNER JOIN:
SELECT A.*, B.* FROM A INNER JOIN B on A.id_a = B.id_a WHERE B.id = 3
id_a | nazwa
-----+------
1 | naz1
2 | naz2
3 | naz3
id_a | nazwa | id | id_a(2) | nazwaa
-----+-------+----+---------+------
1 | naz1 | 1 | 1 | naaz1
1 | naz1 | 2 | 1 | naaz2
2 | naz2 | 3 | 2 | naaz3
id_a | nazwa | id | id_a(2) | nazwaa
-----+-------+----+---------+------
2 | naz2 | 3 | 2 | naaz3
Jak widac w tym przypadu jest troche oszczednosc procka :D
Ale to wszystko zalezy od jezyka i wersji bazy, to co przedstawilem, to POWINNO tak dzialac, a jak dziala na konkretnej bazie, to tylko ci co pisali ta baze wiedza :D
No... Może masz rację :]. Ale jak na razie nie miałem prawie do czynienia z tak rozbudowanymi bazami :]. Jak kiedyś pisałem coś na dużej bazie danych, to tutaj się pytałem jak to zroibć, żeby było dobrze i mam na JOINie :]. Może i warto się poduczyć :P
Adam.Pilorz napisał(a)
Może i warto się poduczyć :P
Na pewno :P ( dobrej wiedzy nigdy za duzo )
Sam czesto uzywam tylko WHERE'ow i unikam JOIN'ow jak ognia :d ale przy kolosach na jakich pracuje, JOINy to czasem zbawienie :)
Desperat masz u mnie [browar]
THX o to mi chodziło :]
Ja mowiac szczerze zawsze używam joinów, niegdy nie używalem zapisu proponowanego przez Adama, joiny sa bardzo intuincyjne jak dla mnie, kwestia przyzwyczajenia