|
Тема
|
MySql query от две таблици
|
|
Автор |
Beco_ (Boogie chillun) |
Публикувано | 18.12.09 20:55 |
|
Здравейте,
Имам една таблица(tbl1) от която трябва да покажа всички записи. В таблицата има две полета Usr1 r Usr2 в което има записани потребителски имена(UserName_). Целта на селект стейтмътта е да извади всички записи от tbl1 заедно с пълните имена(FullName_) от tbl2 вместо Usr1 и Usr2 която има следната структура:
UserName_ varchar(15)
FulName_ varchar(100)
...
Стойностите в полетата Usr1 и Usr2 може и да ги има, но може и да ги няма в UserName_ на tbl2. Usr1 и Usr2 от tbl1 може и да имат едни и същи ст/сти, но може и да различни.
В момента съм си решил проблема с три SQL стейтмънта - селект на всички записи от tbl1 и два отделни селекта за полетата Usr1 и Usr2 от tbl2 за да намеря FullName_, но все си мисля, че има шанс, това да се направи с един SQL израз.
TIA
... for a brief moment it seemed that rock 'n roll would inherit the earth.
| |
Тема
|
Re: елементарен JOIN
[re: Beco_]
|
|
Автор |
salle (един такъв) |
Публикувано | 19.12.09 03:45 |
|
Залегни над книгите и научи какво е JOIN. Това е от АБВ-то на SQL
mysql> SELECT * FROM user;
+------+----------+
| id | name |
+------+----------+
| 1 | Гошо |
| 2 | Иван |
| 3 | Пешо |
+------+----------+
3 rows in set (0.00 sec)
mysql> SELECT * FROM t1;
+------+-------+-------+
| id | u1_id | u2_id |
+------+-------+-------+
| 1 | 1 | 2 |
| 2 | 1 | 3 |
| 3 | 3 | 2 |
+------+-------+-------+
3 rows in set (0.00 sec)
mysql> SELECT t1.id, u1.name, u2.name FROM t1, user AS u1, user AS u2 WHERE t1.u1_id = u1.id AND t1.u2_id = u2.id;
+------+----------+----------+
| id | name | name |
+------+----------+----------+
| 1 | Гошо | Иван |
| 3 | Пешо | Иван |
| 2 | Гошо | Пешо |
+------+----------+----------+
3 rows in set (0.01 sec)
| |
|
|
|
|