Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 7
MySQL

Средствами php и mysql пытаюсь реализовать выборку из двух таблиц

31.05.2016, 15:53. Показов 725. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Есть две таблицы:
Первая (tb_ain - таблица с модулями)
idnameassignmenttypecharacteristicchan_numterminal_chan_numcurrentcontrol_chanfield10
1МA-004Частота до 50 кГц, 2 каналаЧастота(0,1)0210.05 0
2MA-003Термопары, 8 каналовTC(0)0810.03 0
3MA-0050..20 мА, 8 каналов4-20 мА(0,03)0810.03 0
4MA-002-50-3Термосопротивления, 4 каналаR50(0,001)0420.03 0
5MA-002-100-3Термосопротивления, 4 каналаR100(0,001)0420.03 0
6MA-012+/- 10 В, 8 каналов-10…+10 В(0)0810 0
И таблица вторая (tb_test_ai_sign - таблица с тестовыми сигналами)
idfield01field02field11typefield13
1Частота вращения ротора НД, канал №1ГТДЧастотаЧастотаF
2Частота вращения ротора НД, канал №3ГТДЧастотаЧастотаF
3Частота вращения ротора ВД, канал №1ГТДЧастотаЧастотаF
4Частота вращения ротора ВД, канал №2ГТДЧастотаЧастотаF
5Частота вращения ротора ВДГТДЧастотаЧастотаF
6Частота вращения ротора СТ, канал №1ГТДЧастотаЧастотаF
7Частота вращения ротора СТ, канал №3ГТДЧастотаЧастотаF
8Давление масла на входе в двигатель - низкое/мало/велико 4 - 20 мА4 - 20 мАI, пас.
9Давление масла на входе в СТ- мало/велико 4 - 20 мА4 - 20 мАI, пас.
10Давление воздуха за компрессором ВДГТД4 - 20 мА4 - 20 мАI, пас.
11Давление воздуха в полости средней опоры 4 - 20 мА4 - 20 мАI, пас.
12Давление топливного газа на входе в двигательГТД4 - 20 мА4 - 20 мАI, пас.
13Разрежение в воздуховоде двигателя 4 - 20 мА4 - 20 мАI, пас.
14Температура масла на входе в двига-тель 1 канал ТСП 100П, *Климатический, *0.00391R100R

А на выходе пытаюсь получить итоговую таблицу:
 
МA-004 2 Входные аналоговые 14 28 X
0 Частота(0,1) in 0,100000001 Частота Частота вращения ротора НД, канал №1 1
0 Частота(0,1) in 0,100000001 Частота Частота вращения ротора НД, канал №3 1
МA-004 2 Входные аналоговые 14 28 X
0 Частота(0,1) in 0,100000001 Частота Частота вращения ротора ВД, канал №1 1
0 Частота(0,1) in 0,100000001 Частота Частота вращения ротора ВД, канал №2 1
МA-004 2 Входные аналоговые 14 28 X
0 Частота(0,1) in 0,100000001 Частота Частота вращения ротора ВД 1
0 Частота(0,1) in 0,100000001 Частота Частота вращения ротора СТ, канал №1 1
МA-004 2 Входные аналоговые 14 28 X
0 Частота(0,1) in 0,100000001 Частота Частота вращения ротора СТ, канал №3 1

Надо раскидать сигналы из второй таблицы в модули первой, согласно полю TYPE. Т.е. сигнал, который работает по Частоте никак нельзя передать в модуль, который работает по сопротивлению (ну т.д.). При этом 1 сигнал из второй таблицы может занять лишь один канал в модуле. А кол-во каналов задается в первой таблице в поле chan_num. Также, сигналы из второй таблицы нужны не все, а только соответствующие полу field02. Это соответствие задается через php форму пользователем.
Вот пытаюсь сделать итоговую таблицу, чтоб понимать, какое кол-во (и какие) модулей способно обработать выборку сигналов из второй таблицы.
Сначала запросом определил сколько однотипных сигналов в таблице два:
Oracle 11 SQL
1
SELECT *, COUNT(*) AS 'NumSignType' FROM `tb_test_ai_sign` WHERE `field02` = '$uzelName' GROUP BY  `type`
Затем думал сделать (но не получает) выборку модулей из первой таблицы, по полю type из запроса выше и дальше поделить NumSignType на chan_num и так узнать сколько модулей способно обработать определенное кол-во сигналов.
Может подскажете более толковый способ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.05.2016, 15:53
Ответы с готовыми решениями:

MySQL + PHP запрос на выборку уникальных строк по последней дате из двух таблиц
Подскажите где ошибка, выдает первую запись по дате, а не последнюю таблицы create table secretariat_data_docs_tbl ( NomDoc int...

Запрос на выборку из двух таблиц Mysql
Всем доброго времени. Суть вопроса такова : есть 2 таблицы - первая: Куплено вторая: Продано. Обе таблицы строятся по принципу : одна...

PHP+MySQL Вывод из двух таблиц при двух условиях
Есть две таблицы. users: содержит id, foto, usermessages: содержит fromid Нужно выбрать те фотки которые не равны $nofoto и к...

11
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
31.05.2016, 16:02
Извиняюсь в электрике не силен, а 4-20 мА(0,03) и 4 - 20 мА я так понял относится к одному и тому же типу. Есть принципиальные различия в этих формулировках? По хорошему типы надо вынести в отдельную таблицу, а уже в этих двух в графе type будут только id типа из созданной таблицы
0
wq
85 / 78 / 32
Регистрация: 26.11.2015
Сообщений: 481
31.05.2016, 16:17
решил написать Вам запрос, да посмотрел как у вас поля обозваны (fieldN): буэээ. Пишите запросы к таким таблицам сами. А изучить sql до уровня решения вашего примера -пара часов
0
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 7
31.05.2016, 16:27  [ТС]
СлаваВирус, на текущем этапе эту разницу учитывать не нужно (считаем за один тип сигнала).

wq, в данном примере не так и много "noname" полей)). Но всё равно спасибо
0
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
31.05.2016, 16:34
Цитата Сообщение от JDC Посмотреть сообщение
на текущем этапе эту разницу учитывать не нужно
На текущем этапе только или и в дальнейшем? к проектированию базы данных надо подойти максимально ответственно, определиться с сущностями, связями и разнести их по разным таблицам. чтобы в дальнейшем можно было максимально комфортно работать с данными
0
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 7
31.05.2016, 16:46  [ТС]
Я с Вами полностью согласен, изначально правильно спроектированная БД (с правильно определенными сущностями, атрибутами и связями) - залог успешной работы проекта и в дальнейшем снимет порядка 70% всех возможных вопросов.
Но сейчас принимаем что это один тип данных. Значение за скобкой в поле type первой таблицы сейчас мне не нужно учитывать. Возможно в дальнейшем и вовсе приведу этот атрибут к единому виду.
0
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
31.05.2016, 16:51
Ок оставляем, так оставляем)))если скинете дамп этих двух таблиц, попробуем накидать)
0
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 7
31.05.2016, 17:06  [ТС]
вот таблички
Вложения
Тип файла: zip db.zip (2.2 Кб, 3 просмотров)
0
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 7
31.05.2016, 20:23  [ТС]
Если привести данные в исходных таблицах к одному виду и выполнить следующий запрос:
MySQL
1
2
SELECT tb_ain.name, tb_ain.assignment, tb_ain.chan_num, tb_ain.type, COUNT(*) AS TOTAL_SIGNAL 
FROM tb_ain INNER JOIN tb_test_ai_sign ON (tb_ain.type = tb_test_ai_sign.type) GROUP BY tb_ain.name
то всё получается и на выходе имеем:
name assignment chan_num type TOTAL_SIGNAL
MA-005 0..20 мА, 8 каналов 8 4 - 20 мА 6
МA-004 Частота до 50 кГц, 2 канала 2 Частота 7

оставшиеся вычисления (деление TOTAL_SIGNAL на chan_num, с округлением в большую сторону) можно проделать в этом же запросе или средствами php?
как теперь из получившегося результата добиться вида итоговой таблицы?
а можно как-то через LIKE выполнить запрос (чтобы не приводить информацию в столбце type к единому виду)?
0
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 7
07.06.2016, 22:03  [ТС]
Апну тему, может кто даст дельный совет.
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
08.06.2016, 13:56
Цитата Сообщение от JDC Посмотреть сообщение
Апну тему, может кто даст дельный совет.
Что-то не совсем понимаю каким образом связаны эти две таблицы
Цитата Сообщение от JDC Посмотреть сообщение
А на выходе пытаюсь получить итоговую таблицу:
от куда взялась эта строка
Цитата Сообщение от JDC Посмотреть сообщение
МA-004 2 Входные аналоговые 14 28 X
да и все остальные строки тоже не понятно от куда данные появились

используете две таблицы, в которых я таких выходных данных не наблюдаю
0
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 7
08.06.2016, 14:23  [ТС]
Потому что итоговая таблица - это моя "хотелка" и пока существует только в экселе.
Немного усложним первоначальную задачу. Если на примере двух ранее указанных таблиц, то итоговые данные хочу видеть вот так:
Всего модулей задействовано: X Всего клемм занято: Y, в том числе:
ШКАФ №1
МA-004 Частота до 50 кГц, 2 канала Частота(0,1) 0 2
1 Частота вращения ротора НД, канал №1 ГТД Частота Частота F
2 Частота вращения ротора НД, канал №3 ГТД Частота Частота F
МA-004 Частота до 50 кГц, 2 канала Частота(0,1) 0 2
3 Частота вращения ротора ВД, канал №1 ГТД Частота Частота F
4 Частота вращения ротора ВД, канал №2 ГТД Частота Частота F
МA-004 Частота до 50 кГц, 2 канала Частота(0,1) 0 2
5 Частота вращения ротора ВД ГТД Частота Частота F
6 Частота вращения ротора СТ, канал №1 ГТД Частота Частота F
МA-004 Частота до 50 кГц, 2 канала Частота(0,1) 0 2
7 Частота вращения ротора СТ, канал №3 ГТД Частота Частота F
MA-005 0..20 мА, 8 каналов 4-20 мА(0,03) 0 8
8 Давление масла на входе в двигатель - низкое/мало/велико 4 - 20 мА 4 - 20 мА I, пас.
9 Давление масла на входе в СТ- мало/велико 4 - 20 мА 4 - 20 мА I, пас.
10 Давление воздуха за компрессором ВД ГТД 4 - 20 мА 4 - 20 мА I, пас.
11 Давление воздуха в полости средней опоры 4 - 20 мА 4 - 20 мА I, пас.
12 Давление топливного газа на входе в двигатель ГТД 4 - 20 мА 4 - 20 мА I, пас.
13 Разрежение в воздуховоде двигателя 4 - 20 мА 4 - 20 мА I, пас.
MA-002-100-3 Термосопротивления, 4 канала R100(0,001) 0 4 2
14 Температура масла на входе в двига-тель 1 канал ТСП 100П, *Климатический, *0.00391 R100 R
...
ШКАФ № n
...

Отсюда мы получаем, что X=6 Y=17. При этом X и Y - переменные, которые характеризуют размеры шкафа, в который можно запихнуть лишь ограниченное кол-во модулей. Это ограничение указывает пользователь через форму (например X=30, Y=116). Если X и Y превышают ограничение, то оставшиеся модули и сигналы уже пихаются во во второй шкаф и т.д.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.06.2016, 14:23
Помогаю со студенческими работами здесь

Как вывести дерево из двух таблиц MySQL PHP
Привет всем! У меня есть 2 таблицы, одна с названиями подразделений и отделов(department_table D), вторая с сотрудниками(users_table U)...

Связь двух таблиц и выпадающий список php mysql
Помогите начинающму! Есть две таблицы: tab1 id produkt - в эту таблицу добавляются клиенты tab2

Ошибка при выводе данных из двух таблиц PHP MYSQL
$sql = mysql_query("SELECT `title`, `pic` FROM `wow`, `wow2` WHERE wow.id_wow = wow2.id_wow2...

Сделать выборку из двух таблиц
Всем доброго вечера! Прошу помощи на составление sql-запроса. Задача: есть две таблицы - users и orders. Надо сделать выборку...

Запрос на выборку из двух таблиц
Всем доброго времени суток. Помогите пожалуйста составить SQL-запрос. Есть две таблицы: 1)security с полями kod, login, pass 2)today...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru