Я пытаюсь создать массив PHP из базы данных MySQL. Он будет извлекать все данные из таблицы 1 на основе WHERE table1.type="tree"; включая данные из двух других таблиц на основе совпадающих столбцов идентификаторов. Если возможно, ключом для самого внешнего массива будет «имя», найденное в таблице 1.
Он извлекает все данные для table1.type="tree" и объединяет две другие таблицы в идентификатор, но дает мне дубликаты для каждого соединения.
Пробовал LEFT, RIGHT и INNER join
Пробовал UNION, SELECT DISTINCT и GROUP, но не дал мне уникальные строки или отформатированы, как показано ниже.
Надеюсь, что кто-то сможет поделиться перезаписью SELECT, чтобы получить результат, указанный ниже, если это возможно.
таблица 1 должна СОРТИРОВАТЬ ПО «другому» ASC, таблица 2 и таблица 3 должны СОРТИРОВАТЬСЯ. ПО "весу" ASC
Я искал, но ничего не найдено, что не дает желаемого результата
Мне просто нужно разделить его на мало запросов?
PHP 8.3.6
mysqlnd 8.1.30
table1 (unique/key = id)
---------------------------
id: 1, type: 'tree', another: 123, name: 'tree1'
id: 2, type: 'grove', another: 999, name: 'grove1'
id: 3, type: 'tree', another: 777, name: 'tree2'
table2 (unique/key = weight)
---------------------------
weight: 1, id: 1, scent: 'yes', que: 'go'
weight: 2, id: 1, scent: 'no', que: 'y8'
weight: 3, id: 2, scent: 'yes', que: 'th'
weight: 4, id: 3, scent: 'yes', que: 'pi'
table3 (unique/key = weight)
---------------------------
weight: 1, id: 1, wat: 51, jet: 'yes'
weight: 2, id: 1, wat: 55, jet: 'yes'
weight: 3, id: 2, wat: 83, jet: 'no'
weight: 4, id: 3, wat: 0, jet: 'yes'
желаемый результат
[tree1] => Array ( -- name column from table1, don't need it below if i can name it here
[id] => 1
[type] => 'tree'
[name] => 'tree1'
[another] => 123
[table2] => Array (
[1] => Array (
[weight] 1
[id] 1
[scent] 'yes'
[que] 'go'
)
[2] => Array (
[weight] 2
[id] 1
[scent] 'no'
[que] 'y8'
)
)
[table3] => Array (
[1] => Array (
[weight] 1
[id] 1
[wat] 51
[jet] 'yes'
)
[2] => Array (
[weight] 2
[id] 1
[wat] 55
[jet] 'yes'
)
)
)
[tree2] => Array ( -- name column from table1, don't need it below if i can name it here
[id] => 3
[type] => 'tree'
[name] => 'tree2'
[another] => 777
[table2] => Array (
[3] => Array (
[weight] 4
[id] 3
[scent] 'yes'
[que] 'pi'
)
)
[table3] => Array (
[3] => Array (
[weight] 4
[id] 3
[wat] 0
[jet] 'yes'
)
)
)
Подробнее здесь: https://stackoverflow.com/questions/791 ... ue-records
Объединить несколько таблиц в массив php, сохраняя уникальные записи ⇐ Php
Кемеровские программисты php общаются здесь
1731698818
Anonymous
Я пытаюсь создать массив PHP из базы данных MySQL. Он будет извлекать все данные из таблицы 1 на основе WHERE table1.type="tree"; включая данные из двух других таблиц на основе совпадающих столбцов идентификаторов. Если возможно, ключом для самого внешнего массива будет «имя», найденное в таблице 1.
Он извлекает все данные для table1.type="tree" и объединяет две другие таблицы в идентификатор, но дает мне дубликаты для каждого соединения.
Пробовал LEFT, RIGHT и INNER join
Пробовал UNION, SELECT DISTINCT и GROUP, но не дал мне уникальные строки или отформатированы, как показано ниже.
Надеюсь, что кто-то сможет поделиться перезаписью SELECT, чтобы получить результат, указанный ниже, если это возможно.
таблица 1 должна СОРТИРОВАТЬ ПО «другому» ASC, таблица 2 и таблица 3 должны СОРТИРОВАТЬСЯ. ПО "весу" ASC
Я искал, но ничего не найдено, что не дает желаемого результата
Мне просто нужно разделить его на мало запросов?
PHP 8.3.6
mysqlnd 8.1.30
table1 (unique/key = id)
---------------------------
id: 1, type: 'tree', another: 123, name: 'tree1'
id: 2, type: 'grove', another: 999, name: 'grove1'
id: 3, type: 'tree', another: 777, name: 'tree2'
table2 (unique/key = weight)
---------------------------
weight: 1, id: 1, scent: 'yes', que: 'go'
weight: 2, id: 1, scent: 'no', que: 'y8'
weight: 3, id: 2, scent: 'yes', que: 'th'
weight: 4, id: 3, scent: 'yes', que: 'pi'
table3 (unique/key = weight)
---------------------------
weight: 1, id: 1, wat: 51, jet: 'yes'
weight: 2, id: 1, wat: 55, jet: 'yes'
weight: 3, id: 2, wat: 83, jet: 'no'
weight: 4, id: 3, wat: 0, jet: 'yes'
желаемый результат
[tree1] => Array ( -- name column from table1, don't need it below if i can name it here
[id] => 1
[type] => 'tree'
[name] => 'tree1'
[another] => 123
[table2] => Array (
[1] => Array (
[weight] 1
[id] 1
[scent] 'yes'
[que] 'go'
)
[2] => Array (
[weight] 2
[id] 1
[scent] 'no'
[que] 'y8'
)
)
[table3] => Array (
[1] => Array (
[weight] 1
[id] 1
[wat] 51
[jet] 'yes'
)
[2] => Array (
[weight] 2
[id] 1
[wat] 55
[jet] 'yes'
)
)
)
[tree2] => Array ( -- name column from table1, don't need it below if i can name it here
[id] => 3
[type] => 'tree'
[name] => 'tree2'
[another] => 777
[table2] => Array (
[3] => Array (
[weight] 4
[id] 3
[scent] 'yes'
[que] 'pi'
)
)
[table3] => Array (
[3] => Array (
[weight] 4
[id] 3
[wat] 0
[jet] 'yes'
)
)
)
Подробнее здесь: [url]https://stackoverflow.com/questions/79193719/join-multiple-tables-into-a-php-array-keeping-unique-records[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия