Reki
23.07.2006, 20:32:10
W jaki (najprostrzy) sposób można pobrać dane z tabeli w zależności od danych z innej tabeli?
Przykład:
Mam dwie tabele:
users z polami - uid, www, email
oraz:
users name z polami - uid, user_name
I teraz chciałbym jednym zapytaniem pobrać wszystkie dane czyli - uid, www, email oraz user_name w zależności od pobieranego uid.
koobs
23.07.2006, 21:11:16
SELECT u.*, un.user_name
FROM users u
LEFT JOIN users_name un ON un.uid = u.uid
WHERE u.uid = $uid
batman
23.07.2006, 21:23:46
Najprostszym sposobem będzie:
SELECT
u1.uid,
u1.www,
u1.email,
u2.user_name
FROM users u1,
users_name u2
WHERE u1.uid = u2.uid
dawhol
23.07.2006, 21:29:19
a nie prosciej by bylo zrobic to w jednej tabeli bo ja nie widze róznicy wiec po co przeplacac
batman
23.07.2006, 21:32:51
W zupełności zgadzam się z
dawhol. Najlepiej trymać podobne dane w jednej tabeli. Ale jeśli nie ma takiej możliwości, wówczas polceam podamne rozwiązanie
koobs
23.07.2006, 22:01:59
batman zapytanie ktore zaproponowales jest lipne. w przypadku gdyby w drugiej tabeli nie bylo wpisu i tym samym uid dane w ogole nie byly by pobrane. poza tym na joinach mozna grupowac etc.
Reki
24.07.2006, 16:50:35
Dawhol - masz rację, ale ja podałem tylko przykład. Chodziło mi jedynie o to w jaki sposób to dokładnie zrobić ^^.
Jednego tylko nie rozumiem:
users u
czy taki zapis powoduje nadanie aliasu "u" tabeli "users"?