[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как правильно сделать выборку из второй таблицы.
Zombie47
Подскажите пожалуйста у меня сейчасть есть код:
$users_list = $db->query("select * from users where usertype = 2 order by `role` desc, `username` asc", array(), "assoc");

и ниже

<td><?=$u['city']?></td>

Так вот в таблице users столбец city у меня проставлен в виде id
и соответственно выводит в виде айди. А мне надо чтобы выводил название города которое запихано в таблицу cities, в инете поискал, понял что нужно использоваться LEFT JOIN почитал подумал написал такое:
SELECT users.*, cities.* FROM users LEFT JOIN cities ON users.city = cities.id

А вот как выклинить это туда не хватает опыта. И будет ли выводиться название города если я впишу ниже вместо <td><?=$u['city']?></td> впишу <td><?=$u['name']?></td>
и что было бы еслиб в первой и второй таблице были столбцы name?



Спустя 23 минуты, 37 секунд (4.03.2012 - 23:24) Placido написал(а):
Если в таблице `cities` название города хранится в поле `name`, то примерно так:
SELECT `users`.*, `city`.`name` AS `cityname`
FROM `users` LEFT JOIN `cities` ON `users`.`city` = `cities`.`id`
WHERE `users`.`usertype` = 2 ORDER BY `users`.`role` DESC

И тогда название города будет лежать в $u['cityname']

Цитата (Zombie47 @ 4.03.2012 - 22:00)
...и что было бы еслиб в первой и второй таблице были столбцы name?

Эта проблема решается использованием псевдонимов в запросе (select ... as ...).

Спустя 6 минут, 51 секунда (4.03.2012 - 23:31) Zombie47 написал(а):
Что то не работает, видимо я где то накосячил:
$users_list = $db->query("SELECT `users`.*, `city`.`name` AS `cityname`
FROM `users` LEFT JOIN `cities` ON `users`.`city` = `cities`.`id`
WHERE `users`.`usertype` = 2 ORDER BY `users`.`role` DESC, `username` asc", array(), "assoc");

А снизу вписал
<td><?=$u['cityname']?></td>

Спустя 4 минуты, 2 секунды (4.03.2012 - 23:35) Zombie47 написал(а):
Не пойму как тут определяется с какой таблицы он что берет? users это название таблицы а не столбца!

Спустя 3 минуты, 22 секунды (4.03.2012 - 23:38) Placido написал(а):
А чего определяться? `имя таблицы`.`имя поля`

Вместо `username`нужно поставить `users`.`username`.

А вообще, нужно показывать весь код, который относится к вашему вопросу. А также сообщения об ошибках. "Не работает" ни о чем не говорит.

Спустя 7 минут, 9 секунд (4.03.2012 - 23:45) Zombie47 написал(а):
Еслиб я еще знал как посмотреть сообшения об ошибках, в данном случае просто перестало выводить. пусто и все. Вместо `username`поставил `users`.`username`. не помогло.
Код приложил

Спустя 14 минут, 47 секунд (5.03.2012 - 00:00) Placido написал(а):
А что это за расширение? Не PDO и не mysqli, очевидно.

Спустя 12 минут, 32 секунды (5.03.2012 - 00:12) Zombie47 написал(а):
Расширение чего файла? php просто код. открываю обычным Notepad ++

Спустя 10 минут, 58 секунд (5.03.2012 - 00:23) Placido написал(а):
Ясно. Тогда нужно обратиться за помощью к тому, кто писал код.

Спустя 3 минуты, 30 секунд (5.03.2012 - 00:27) Zombie47 написал(а):
Цитата (Placido @ 4.03.2012 - 21:23)
Ясно. Тогда нужно обратиться за помощью к тому, кто писал код.

не понимаю а в чем сложность файл то открывается. Или не понятны какие то значения или что?
Просто к программисту по таким мелоч обращаться это его замучает. Он решает более глобальные проблемы.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.