Объединить несколько таблиц в массив php, сохраняя уникальные записиPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Объединить несколько таблиц в массив php, сохраняя уникальные записи

Сообщение 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'
)
)
)


Подробнее здесь: https://stackoverflow.com/questions/791 ... ue-records
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»