|
|
|
| Приветсвую.
Есть две таблицы
users которые содержат данные об юзвере и идентификатор id_town города в котором он живет, тоесть цифра
login | id_town
. . .
technic25 | 5
artem | 6
. . .
и есть таблица городов town, id которых соответствуют идентификатору в таблице
id_town | town
. . .
5 | Балашиха
6 | Электроугли
. . .
нужно сделать запрос пользователей из таблицы users а идентификатор менять на название города из таблицы town
вот немогу никак придумать запрос чтоб за раз все вытаскивать, а ведь банальщина ((( | |
|
|
|
|
|
|
|
для: technic611
(12.01.2011 в 17:52)
| | Можно поступить следующим образом
SELECT users.login AS login,
town.town AS town
FROM users LEFT JOIN town ON (users.id_town = town.id_town)
GROUP BY login
|
| |
|
|
|
|
|
|
|
для: cheops
(12.01.2011 в 17:56)
| | спасибо за оперативный ответ. работает ))) что здесь значят операторы ON, LEFT JOIN ? и для чего приставка AS она обязательна в синтаксисе?
P.S. почему не напишите книжку jQuery и Ява скриптам? | |
|
|
|
|
|
|
|
для: technic611
(12.01.2011 в 18:21)
| | Времени маловато даже по PHP и MySQL книги обновить, а совершенно новый материал требует очень много времени посвященного исключительно ему. Кроме того, по Java Script много хороших книг - тут сложно, что-то новое сказать. По jQuery согласен, не хватает хорошего издания (если это вообще возможно - все-таки это библиотека, т.е. приложение, а не полноценная технология, как JavaScript, которую можно разобрать от и до). | |
|
|
|
|
|
|
|
для: cheops
(12.01.2011 в 18:26)
| | даааа давненько уже нет обновлений, грустно ( | |
|
|
|
|
|
|
|
для: cheops
(12.01.2011 в 18:26)
| | а если нужно вывести допустим еще и район, он находится в этой ж таблице town в этом же столбце что и города
town
id_town name id_rayon
2 | Балашихинский р-н | 0
. . .
5 | Балашиха | 2 | |
|
|
|
|
|
|
|
для: technic611
(12.01.2011 в 20:33)
| | тогда выходит, что таблица содержит id-parent_id дерево регионального подчинения, и называть её town неразумно.
ключевое слово AS - необязательное
Тем не менее иногда запрос с его применением лучше читается.
А иногда - наоборот.
Особенно если используются однобуквенные алиасы таблиц.
По поводу LEFT JOIN ... ON - см.здесь | |
|
|
|
|
|
|
|
для: Trianon
(12.01.2011 в 20:55)
| | ну таблица у меня изначально называет region. просто пример указал с городами. решил все в одно загнать и регионы и города да наверно напрасно... | |
|
|
|
|
|
|
|
для: technic611
(12.01.2011 в 23:36)
| | почему напрасно?
если требуется оперировать адресами, которые могут состоять из цепочек таких регионов (Ленинградская обл., Всеволожский р-н, пос.Токсово, к примеру) , то можно и в одну таблицу загнать.
Райцентры можно пометить соответствующим образом, чтобы их выборка подавляла данные района. | |
|
|
|
|
|
|
|
для: Trianon
(12.01.2011 в 23:49)
| | а можно по-русски писать? спасибо | |
|
|
|
|
|
|
|
для: technic611
(13.01.2011 в 00:01)
| | > technic611 (13.01.2011 в 00:01)
для: Trianon (12.01.2011 в 23:49)
>а можно по-русски писать? спасибо
в посте (12.01.2011 в 23:49) нет ни одного иностранного слова. | |
|
|
|
|
|
|
|
для: technic611
(12.01.2011 в 23:36)
| | Непонятно вот что, как связать таблицу users и region? Приведите полные структуры ваших таблиц. | |
|
|
|
|
|
|
|
|
для: technic611
(14.01.2011 в 16:41)
| | Этого мало, сколько у вас вообще сейчас связанных таблиц (пользователи, города, районы, шоссе, станции метро)? | |
|
|
|
|
|
|
|
|
для: technic611
(14.01.2011 в 17:20)
| | Так, а таблица регионы+города (два в одной) какую структуру имеют?
PS Картинки, кстати, можно и тут на форуме прикреплять. | |
|
|
|
|
 17.6 Кб |
|
|
для: cheops
(14.01.2011 в 17:26)
| | вот же прикрепил
там шоссе города подчиненные шоссе по идентификатору | |
|
|
|
|
|
|
|
для: technic611
(14.01.2011 в 17:49)
| | Нет, а где таблица с регионами и городами? | |
|
|
|
|
|
|
|
для: cheops
(14.01.2011 в 17:54)
| | эта и есть она, под регоном я подразумевал название шоссе(оно вместо региона) | |
|
|
|
|
|
|
|
для: technic611
(14.01.2011 в 19:24)
| | А понял, таблица сама на себя замкнута...
1)Так, а что нам нужно в конце получить в результирующей таблице: имя пользователя, город и шоссе?
2) Поле users.id_town с каким полем таблицы town связано (id_name или id_road)? | |
|
|
|
|
|
|
|
для: cheops
(14.01.2011 в 19:28)
| | 1) да имя пользователя, город и шоссе и их вывести
2) с id_name таблицы town | |
|
|
|
|
|
|
|
для: technic611
(14.01.2011 в 19:33)
| | Попробуйте следующий запрос
SELECT u.name AS name,
t.name AS town,
r.name AS road
FROM users AS u LEFT JOIN town AS t ON (u.id_town = t.id_name)
LEFT JOIN town AS r ON (t.id_road = r.id_name)
GROUP BY name
|
| |
|
|
|
|
|
|
|
для: cheops
(14.01.2011 в 19:44)
| | у меня в одной таблице и города и название шоссе( а тут как я понял они берутся из разных таблиц
t.name AS town,
r.name AS road | |
|
|
|
|
|
|
|
для: technic611
(17.01.2011 в 16:26)
| | Нет, из одной и той же, просто при самообъеденении таблицы необходимо вводить алиасы (псевдонимы). Вы сами попробуйте, я воспроизвел ваши таблицы у себя - вроде получается без ошибок. | |
|
|
|
|
|
|
|
для: cheops
(13.01.2011 в 09:38)
| | просто я решил еще выводить название шоссе, а шоссе находится в том жеполе что и город | |
|
|
|