За последние 24 часа нас посетили 16940 программистов и 1294 робота. Сейчас ищут 1465 программистов ...

select из массива с формированием массива

Тема в разделе "MySQL", создана пользователем shiyri, 4 окт 2020.

  1. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.487
    Симпатии:
    281
    Не то чтобы я критиковал, но хранить изображение в той же таблице, где и текстовые данные, не самая удачная идея.
    Да и сама по себе такая возможность излишество.
     
  2. shiyri

    shiyri Активный пользователь

    С нами с:
    8 июн 2019
    Сообщения:
    112
    Симпатии:
    0
    текст без изображений не оссобо нужен, как и наоборот, и фоток будет максимум 40-50..... не более
     
  3. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.487
    Симпатии:
    281
    Я понял, что вы хотите.
    Решение:
    Код (Text):
    1. SELECT `date`, GROUP_CONCAT(`m_array` SEPARATOR ', ') AS 'list'
    2. FROM `menu_table`
    3. GROUP by `date`
    Но объединить это с `kuchnya` не получится

    Правильное решение
    Код (Text):
    1. SELECT `menu_table`.`date`, `kuchnya`.`type`, `kuchnya`.`names`, `kuchnya`.`sostav`, `kuchnya`.`ves`, `kuchnya`.`price`, `kuchnya`.`opisanie`, `menu_table`.`m_array`
    2. FROM `kuchnya`
    3. INNER JOIN `menu_table`
    4. ON `kuchnya`.`imageId` = `menu_table`.`m_array`
    5. ORDER BY `date` ASC
    Или на одну дату
    Код (Text):
    1. SELECT `menu_table`.`date`, `kuchnya`.`type`, `kuchnya`.`names`, `kuchnya`.`sostav`, `kuchnya`.`ves`, `kuchnya`.`price`, `kuchnya`.`opisanie`, `menu_table`.`m_array`
    2. FROM `kuchnya`
    3. INNER JOIN `menu_table`
    4. ON `kuchnya`.`imageId` = `menu_table`.`m_array`
    5. WHERE `date` = '2020-10-22'
    6. ORDER BY `price` ASC
     
  4. shiyri

    shiyri Активный пользователь

    С нами с:
    8 июн 2019
    Сообщения:
    112
    Симпатии:
    0
    яхууууууу, спасибо, выглядит оч просто, урок усвоен! Проблема была в том что я применял ид равно ид до ON а надо было после :))))
     
  5. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.487
    Симпатии:
    281
    Всё таки советую пересмотреть структуру таблиц.
    Скачайте какую-нибудь рабочую базу.
    От опытных администраторов.
    Смотрите, что там и как. Для начала копируйте...
     
  6. shiyri

    shiyri Активный пользователь

    С нами с:
    8 июн 2019
    Сообщения:
    112
    Симпатии:
    0
    Код (Text):
    1. SELECT `menu_table`.`date`, GROUP_CONCAT(DISTINCT kuchnya.names
    2. ORDER BY kuchnya.names) AS menu
    3. FROM `kuchnya` INNER JOIN `menu_table`
    4. ON `kuchnya`.`imageId` = `menu_table`.`m_array`
    5. GROUP BY `menu_table`.`date` ORDER BY `date` ASC
    еееееееееееее, красное сухое придало мне сил :)))))
     
  7. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.487
    Симпатии:
    281
    Это только дата и название.
    Для остальных колонок GROUP_CONCAT() придется применять тоже.
    DISTINCT, кстати, лишнее.