Задать вопрос
Ответы пользователя по тегу SQL
  • Структура таблиц для подобных данных?

    Предлагаю таблицу следующей структуры:
    CREATE TABLE IF NOT EXISTS `expressions` (
      `id` int(10) unsigned NOT NULL,
      `rel_a` enum('self','external') NOT NULL,
      `id_a` int(10) unsigned NOT NULL,
      `operation` enum('and','or') NOT NULL,
      `rel_b` enum('self','external') NOT NULL,
      `id_b` int(10) unsigned NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;


    Где одна запись - это одна операция между двумя сущностями.
    Сущностью может быть как запись с id из внешней таблицы (rel=external), так и с id из текущей (rel=self).

    Разбиваем ваше выражение след. образом
    1. a or b
    2. c or d
    3. (1) and (2)
    4. (3) and e
    5. (4) or f


    Записи в таблице:
    idrel_aid_aoperationrel_bid_b
    1externalAorexternalB
    2externalCorexternalD
    3self1andself2
    4self3andexternalE
    5self4orexternalF

    где A, B, C, D, E, F - ID записей из внешней таблицы

    Запись с ID=5 - будет вашим исходным выражением.
    Ответ написан
    Комментировать
  • Как найти производителей принтеров?

    Если я правильно понял задание, то так:
    SELECT pd.maker FROM `printer` pt JOIN `product` pd
    ON pt.model = pd.model 
    GROUP BY pd.maker
    Ответ написан
    Комментировать