Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха переехала на новый сервер, ура!

Краснодарское время: 25 Май, 2012, 05:59:44

Страниц: [1]
Печать
Автор Тема: sql запрос  (Прочитано 263 раз)
0 Пользователей и 1 Гость смотрят эту тему.
soulgarden    ↓ 
25 Ноябрь, 2010, 08:14:24
НЕ ХУЕТА! ХУЕТА!

Карма: 5
Сообщений: 766
Сила слова: 0.65

написал вот такой запрос
SQL

SELECT  `area_name``street_name``house_name``price``user_login``user_skill``user_profile_phone`
FROM  `taxi_areas`
JOIN  `taxi_streets_areas` ON  `taxi_areas`.`area_id``taxi_streets_areas`.`area_id`
JOIN  `taxi_streets` ON  `taxi_streets`.`street_id``taxi_streets_areas`.`street_id`
JOIN  `taxi_orders` ON  `taxi_orders`.`street_id``taxi_streets`.`street_id`
JOIN  `taxi_user` ON  `taxi_user`.`user_id``taxi_orders`.`user_id`
WHERE  `taxi_areas`.`area_name`'Центральный'
LIMIT 0 , 30
 

как его оптимизировать и избежать того, чтобы запрос при некоторых условиях не вытягивал лишние данные, например, отобразит данные другого пользователя, если нет необходимого - вечная для меня проблема
Записан
AndryG    ↓ 
25 Ноябрь, 2010, 09:53:47 , спустя 1 час 39 минут 23 секунды
НЕ ХУЕТА! ХУЕТА!
Группа: Адекваты

Карма: 1
Сообщений: 233
Сила слова: 0.43

SQL
SELECT
 u.name u_name,
 s.name s_name,
 w.name w_name
FROM users u 
  JOIN street s
    ON u.street_id = s.id  -- отбираем юзера и улицу его проживания
    AND u.id = :USER_ID
  LEFT JOIN users w  -- LEFT даже, если жены нет, то даные по юзеру нам надо получить
    ON u.partner = w.id  -- если есть жена, то вытяем и её даные
Если я правильно понял Ваш вопрос. Если не то, то говорите точнее, что у Вас не получается.
Используйте псевдонимы.
Используйте псеводнимы при указании полей.
Записан
soulgarden    ↓ 
25 Ноябрь, 2010, 10:00:34 , спустя 6 минут 47 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 5
Сообщений: 766
Сила слова: 0.65


SQL
SELECT
 u.name u_name,
 s.name s_name,
 w.name w_name
FROM users u 
  JOIN street s
    ON u.street_id = s.id  -- отбираем юзера и улицу его проживания
    AND u.id = :USER_ID
  LEFT JOIN users w  -- LEFT даже, если жены нет, то даные по юзеру нам надо получить
    ON u.partner = w.id  -- если есть жена, то вытяем и её даные
Если я правильно понял Ваш вопрос. Если не то, то говорите точнее, что у Вас не получается.
Используйте псевдонимы.
Используйте псеводнимы при указании полей.

хех, на самом деле мы выводим заказы такси, в зависимости от района, в котором находится клиент
 
выводим в виде
[улица и дом] - [номер телефона] - [имя] - [рейтинг] - [предлагаемая цена]
Спустя 1 минуту 1 секунду добавил
LEFT JOIN обычно никак не помогает
Записан
Faster    ↓ 
26 Ноябрь, 2010, 12:25:33 , спустя 2 часа 24 минуты 59 секунд
НЕ ХУЕТА! ХУЕТА!


Карма: 10
Сообщений: 954
Сила слова: 1.05

GROUP BY  
Спустя 32 секунды добавил
или distinct по нужному полю
Записан

воспитываю дочь. С домами и деревьями  - не приставать.
AndryG    ↓ 
26 Ноябрь, 2010, 02:08:50 , спустя 13 часов 43 минуты 17 секунд
НЕ ХУЕТА! ХУЕТА!
Группа: Адекваты

Карма: 1
Сообщений: 233
Сила слова: 0.43

soulgarden, провидец с меня хреновый.
Записан
Страниц: [1]
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd, Sinkler