Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RFpro.ru: Базы данных MySQL


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

SAW
Статус: Студент
Рейтинг: 156
∙ повысить рейтинг »
solowey
Статус: Профессионал
Рейтинг: 73
∙ повысить рейтинг »
Megaloman
Статус: Мастер-Эксперт
Рейтинг: 24
∙ повысить рейтинг »

∙ Базы данных

Номер выпуска:546
Дата выхода:04.08.2020, 23:15
Администратор рассылки:Коцюрбенко Алексей Владимирович (Старший модератор)
Подписчиков / экспертов:21 / 16
Вопросов / ответов:3 / 6

Консультация # 121818: Здравствуйте ув. эксперты! Есть такой вопрос, думаю не легкий. Есть таблица Товары (содержит информацию о товаре), а также три таблицы Магазин1, Магазин2, Магазин3. В них есть такие поля: ИдТовара, Наличие,Приход,Продажи. Мне надо составить запрос так, чтобы в результате запроса были такие колонки: ну собственно сама информация о товара, а ...
Консультация # 181441: Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос: Есть таблица `cells` в базе данных MySQL. Поля id (serial), x (int), y(int), status (tinyint). В табице уже есть миллион записей что чоотвечтвует матрице 1000Х1000. Соотвестенно "х" и "у" это коорднаты в матрице (Например х=324, у=300), а status может б...
Консультация # 88658: Здравствуйте! Неполучается удаленно подсоедениться к базе данных. Есть два сайта на разных серверах и вообще платформах. На одном сервере находится база данных и сайт. Мне нужно с другого сайта (на другом сервере) подсоеденится к базе (мускул). мои действия: в базу данных прописываю нового пользователя с привелегиями select. ...

Консультация # 121818:

Здравствуйте ув. эксперты!
Есть такой вопрос, думаю не легкий. Есть таблица Товары (содержит информацию о товаре), а также три таблицы Магазин1, Магазин2, Магазин3. В них есть такие поля: ИдТовара, Наличие,Приход,Продажи.
Мне надо составить запрос так, чтобы в результате запроса были такие колонки: ну собственно сама информация о товара, а также Магазин1, Магазин2, Магазин3. В последних трех колонках должно стоять количество товара в данном магазине, а если такого нету, то нуль. Это количество берется из поля Наличие в каждой таблице Магазин.
Не знаю, может я как-то неправильно составил таблицы и связь между ними, но я уже долго мучаюсь, а такого запроса составить не могу. Возвращает тока те товары, которые есть во всех трех магазинах. Но мне надо получить именно такой результат.
ЗЫ: В таблицах Магазин хранится инфа тока о том товаре, который там есть, т.е. нулей нету.
ЗЫ:ЗЫ: делаю в MS Access

Дата отправки: 05.02.2008, 19:16
Вопрос задал: BerdArt
Всего ответов: 4
Страница онлайн-консультации »


Консультирует Zubex:

Здравствуйте, BerdArt!
Таблицы, на мой взгляд, дествительно составлены не правильно. Вместо 3-х таблиц магазинов надо было сформировать таблицу "Магазины" со столбцами ID, MAGAZ_NAME, а также одну таблицу типа "Склад" с полями ИдМагазина,ИдТовара, Наличие,Приход,Продажи. Ну и связать их по Ид. Это позволит не привязываться только к трем магазинам.

Но и в Вашем случае можно составить запрос примерно такого вида:
select т.Ид, [т.остальные поля,]
(select м1.Наличие from Магазин1 м1 where м1.ИдТовара=т.Ид) mag1,
(select м2.Наличие from Магазин2 м1 where м2.ИдТовара=т.Ид) mag2,
(select м3.Наличие from Магазин3 м3 where м3.ИдТовара=т.Ид) mag3
from Товары т

Удачи!

Консультировал: Zubex
Дата отправки: 05.02.2008, 22:25
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Тесленко Евгений Алексеевич:

Здравствуйте, BerdArt!
Создайте групповой запрос с параметрами объединения:
Всех записей из таблицы товары с таблицей Магазин1, в которых связанные поля совпадают.
FROM Товары LEFT JOIN Магазин1 ON Товары.Id_Товары = Магазин1.Id_Товары

"Три последних" могут формироваться так:
Sum(IIf(IsNull([Магазин?]![количество]),0,[Магазин?]![количество]))

Евгений.

Консультировал: Тесленко Евгений Алексеевич
Дата отправки: 06.02.2008, 02:40
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Челноков Виктор Альбертович:

Здравствуйте, BerdArt!
Используйте в запросе объеденение один ко многим.
Т.е. одна запись в табл товары и много записей в табл. магазин.

Консультировал: Челноков Виктор Альбертович
Дата отправки: 06.02.2008, 08:54
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Serge R. Bochkareff:

Здравствуйте, BerdArt!
Видимо вам необходимо сделать объединение трех запросов. Точно не помню, но в оракле есть такая штука как union

select field1, field2, field3
from table1
where ...
union all
select field1, field2, field3
from table2
where ...
union all
select field1, field2, field3
from table3
where ...

А похорошему таблица магазинов должна быть одна. Должно быть поле определяющее id магазина

table good
gid
name
price_buy
price_sale
.. etc

table shops
sid
name
address

table container
cid
gid
sid
count
sold
shipping
income

Что-то в этом духе. Не стоит хранить в принципе одни и те же данные в разных таблицах.

Консультировал: Serge R. Bochkareff
Дата отправки: 06.02.2008, 09:12
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 181441:

Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос:
Есть таблица `cells` в базе данных MySQL. Поля id (serial), x (int), y(int), status (tinyint). В табице уже есть миллион записей что чоотвечтвует матрице 1000Х1000. Соотвестенно "х" и "у" это коорднаты в матрице (Например х=324, у=300), а status может быть 1(занятая ячйка) или 0(свободная). В матрице ячейки могут образовывать квадратные области, Например, коррдинаты 0,0 и размер квадратной области 5 значит что мы имеем квадратную область в которую входять ячейки с 0,0; 0,1; 0,2; 0,3; 0,4; 1,0; 1,1; и т.д короче в этой квадратной области 25 ячеек занятых.
Вообщем думаю суть таблицы ясна: в ней есть ячейки, некоторые из них свободны, а некоторые заняты, и кажадая имеет свои координаты в системе координат (или матрице, кому как удобнее).
Внимание вопрос: Как с помощю SQL запроса мне выбрать свободную область (например 4Х4). Тоесть мне надо выбрать четыре ряда, которые имеют неприрывную последовательно по "х" и по "у", и где "status" = 0. Все что у меня есть э то размер области (количеста ячеек).

Спасибо.

Дата отправки: 19.12.2010, 13:15
Вопрос задал: Александр
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Павел Юрьевич:

Здравствуйте, Александр!

Привожу решение, которое выведет Вам все левые верхние координаты углов квадратов. В SQL-запросе замените "5" во всех местах на нужный Вам размер квадрата:

select yc, xc
from
(
select y, xc from cells join (select distinct x as xc from cells) xx
where x >= xc and x < xc+5
group by y, xc
having sum(status) = 0 and count(*) = 5
) xgr join (select distinct y as yc from cells) yy
where y >= yc and y < yc+5
group by yc, xc
having count(*) = 5

Консультировал: Павел Юрьевич
Дата отправки: 19.12.2010, 18:18

5
нет комментария
-----
Дата оценки: 19.12.2010, 18:42

Рейтинг ответа:

НЕ одобряю +1 одобряю!

Консультация # 88658:

Здравствуйте!
Неполучается удаленно подсоедениться к базе данных.
Есть два сайта на разных серверах и вообще платформах.
На одном сервере находится база данных и сайт. Мне нужно с другого сайта (на другом сервере) подсоеденится к базе (мускул).
мои действия:
в базу данных прописываю нового пользователя с привелегиями select.
создаю разрешенный хост (на котором находится второй сайт, который должен получить доступ к базе). На другом сайте использую данные нового пользователя и хост базы (пробовал и IPшники использовать и названия серверов). Не конектится.

Дата отправки: 26.05.2007, 14:01
Вопрос задал: Valeraorg
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Архангельский Андрей Германови:

Здравствуйте, Valeraorg!
Нельзя с одного сайта подключится к БД на другом сайте. С целью обеспечить безопастность доступ для MySQL устанавливается "Local"

Консультировал: Архангельский Андрей Германови
Дата отправки: 26.05.2007, 14:11
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное