Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2012, 12:01   #1
Mortimoro
Форумчанин
 
Регистрация: 03.12.2010
Сообщений: 334
По умолчанию SQL-запрос

есть таблица "cities" с полями "city_id" и "name" типа:
Код:
1 Киев
2 Москва
3 Минск
есть таблица "users" с полями "name", "mail", "city_id" типа:
Код:
Вася vasya@mail.ru 1
Петя petya@i.ua 2
Оля olya@ya.ru 3
как правильно составить SQL-запрос, чтоб получить вывод всех юзеров в виде:
Код:
Вася Киев
Петя Москва
Оля Минск
?

и если есть толковая статья на тему составления подобных запросов, ткните носом, пожалуйста.
Mortimoro вне форума Ответить с цитированием
Старый 18.07.2012, 12:39   #2
JokerZero
Пользователь
 
Регистрация: 17.07.2012
Сообщений: 10
По умолчанию

<?php
mysql_connect("localhost", "root", "pass");
mysql_select_db ("test"); //БД

$result = mysql_query("SELECT * FROM cities ORDER BY name");
while ($row = mysql_fetch_assoc($result)) {

$city = $row['name'];
}

$result = mysql_query("SELECT * FROM users ORDER BY name");
while ($row = mysql_fetch_assoc($result)) {

$name = $row['name'];
}

echo = "$name $city"

?>

По идее должна работать но точно не знаю мб поэкспериментировать)))
JokerZero вне форума Ответить с цитированием
Старый 18.07.2012, 12:57   #3
Mortimoro
Форумчанин
 
Регистрация: 03.12.2010
Сообщений: 334
По умолчанию

спасибо, но так я тоже умею... это слишком просто и не интересно )))

я видел вроде где-то сложные SQL-запросы, в которых данные из одной таблицы выбирались на основе данных другой таблицы одним запросом, но в упор не могу вспомнить где видел, как называется и правильно ли вообще у меня в голове оно отложилось.

что-то вроде INNER JOIN и т.п... но я никак не могу найти толковую статью, в которой доступно описано применение таких конструкций.

PS: кстати, в приведенном коде переменным $city и $name будут присвоены только последние значения.

Последний раз редактировалось Mortimoro; 18.07.2012 в 13:09.
Mortimoro вне форума Ответить с цитированием
Старый 18.07.2012, 13:10   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

PHP код:
SELECT `users`.`name` AS `uname`, `cities`.`name` AS `cname
FROM `users
LEFT JOIN `citiesON `users`.`city_id` = `cities`.`id`; 
Мануал - JOIN
Выборка из двух таблиц в MySQL. Оператор JOIN.
MySQL немного о JOIN'ах
Понимание SQL
Andkorol вне форума Ответить с цитированием
Старый 18.07.2012, 13:41   #5
Mortimoro
Форумчанин
 
Регистрация: 03.12.2010
Сообщений: 334
По умолчанию

Andkorol, благодарю.
Mortimoro вне форума Ответить с цитированием
Старый 18.07.2012, 23:32   #6
JokerZero
Пользователь
 
Регистрация: 17.07.2012
Сообщений: 10
По умолчанию

ну я тот код кинул грубо говоря из своего который делал вчера часов 6 примерно потому что практически не знаю php и mysql.

и я не особо понимаю что там где и как выводится)) мне просто было важно чтоб оно хоть как бы выводилось бы и задавало в базу))

вот полный мой код =D
JokerZero вне форума Ответить с цитированием
Старый 20.07.2012, 04:50   #7
Mortimoro
Форумчанин
 
Регистрация: 03.12.2010
Сообщений: 334
По умолчанию

JokerZero, код нерациональный... если делать лишь бы было, то лучше вообще не делать. А ради вывода одного значения цикл использовать - это противоречит логике.

Andkorol, почитал мануалы, действительно доходчиво написано и я начал понимать принцип построения запроса с JOIN наконец-то... три таблицы удалось объединить "на ура" без лишних танцев с бубнами. Еще раз спасибо
Mortimoro вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
sql запрос xil SQL, базы данных 5 26.01.2011 14:15
Запрос в SQL Анн Помощь студентам 2 16.12.2010 19:51
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
SQL запрос на основе другого SQL запрса... Timoxa БД в Delphi 1 07.01.2007 18:15