[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запрос на поиск
Страницы: 1, 2
AllesKlar
maximka787
Не сцы. Наши десктопщики, к тулзе которых мы пишем веб-морду, вообще в базе имеют таблицу, которая хранит первичные ключи к остальным таблицам.
И чтобы куда-то добавить запись, нужно сначала в этой "таблице первичных ключей" обновить запись, потом ее прочитать, а потом в нужную таблицу внести этот "первичный ключ".

А переписать возможности нет, т.к. более 200 клиентов, у каждого своя база, и это уж лет как 10.
Там на рефакторинг уйдет столько времени, что проще новую фирму открыть smile.gif

_____________
[продано копирайтерам]
Valick
Цитата (AllesKlar @ 11.12.2015 - 17:56)
сначала в этой "таблице первичных ключей" обновить запись, потом ее прочитать, а потом в нужную таблицу внести этот "первичный ключ"

это вполне нормальная практика для формирования уникального ключа(аналог UUID()), вот только читать ничего не надо, ласт инсерт айди для этого есть.

_____________
Стимулятор ~yoomoney - 41001303250491
maximka787
Мужики, выручите. Таблицу переделали и я теперь другой запрос не напишу никак(((

Есть 3 таблицы. Счета, менеджеры и атрибуты счета (позиции в счете)

SELECT `schet`.`id`, `schet`.`summa`, `schet`.`date_create`, `managers`.`name` 
FROM `schet`, `managers`
WHERE `schet`.`manager_id` = `managers`.`id`
AND `schet`.`date_create` < NOW() - INTERVAL 6 MONTH

Показываем все счета давностью более 6 месяцев.

Казалось бы всё просто, но надо через LEFT JOIN добавить таблицу атрибуты счета и по ней провести поиск.

Таблица `schet_items` (id, schet_id, usluga_id)
schet_id связана с `schet`
usluga_id - номера услуг. INT.

Как сделать так, чтобы в этот запрос добавить условие WHERE `usluga_id` = 10. при этом не забываем, что у некоторых счетов вообще нет атрибутов.

Я делал, но фигня получается.

SELECT `schet`.`id`, `schet`.`summa`, `schet`.`date_create`, `managers`.`name`, `schet_items`.*
FROM `schet`, `managers`
WHERE `schet`.`manager_id` = `managers`.`id`
AND `schet`.`date_create` < NOW() - INTERVAL 6 MONTH
LEFT JOIN `schet_items` ON `schet_items`.`schet_id` = `schet`.`id`
AND `schet_items`.`usluga_id` = 10




_____________
..Работает - не трогай!
Быстрый ответ:

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