За последние 24 часа нас посетили 24469 программистов и 1656 роботов. Сейчас ищут 880 программистов ...

Не могу связать таблицы

Тема в разделе "MySQL", создана пользователем kowapos, 27 мар 2015.

  1. kowapos

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

    С нами с:
    18 янв 2013
    Сообщения:
    120
    Симпатии:
    0
    Вот эту таблицу
    Код (Text):
    1. CREATE TABLE `as_shop_production` (
    2.   `id_product` int(11) unsigned NOT NULL AUTO_INCREMENT,
    3.   `name` varchar(750) DEFAULT NULL,
    4.   `id_brand` int(11) NOT NULL,
    5.   `id_catalog` int(11) DEFAULT NULL,
    6.   `price` int(11) DEFAULT NULL,
    7.   `date_create` int(11) DEFAULT NULL,
    8.   `date_update` int(11) DEFAULT NULL,
    9.   `views` int(11) DEFAULT NULL,
    10.   `rating` int(11) DEFAULT NULL,
    11.   PRIMARY KEY (`id_product`),
    12.   KEY `id_brand` (`id_brand`)
    13. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    нужно привязать к этой
    Код (Text):
    1. CREATE TABLE `as_shop_brand` (
    2.   `id_brand` int(11) unsigned NOT NULL AUTO_INCREMENT,
    3.   `name` int(11) DEFAULT NULL,
    4.   PRIMARY KEY (`id_brand`)
    5. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    вот индексы первой таблицы
    [​IMG]

    вот что прописываю для связки
    [​IMG]

    вот что возвращает
    [​IMG]


    ____

    пробовал запросом - тоже самое, и через phpmyadmin тоже пробовал. я уже 6 часов мучаюсь, форумы обшарил, видео уроки пересмотрел. ничего не выходит
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    только запросом и надо делать. за этими красивыми картинками строится запрос, только ты не видишь его.
    так что пиши ручками и нам сюда скопируй, чтобы мы тоже попробовали.
     
  3. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    `id_brand` int(11) NOT NULL,
    `id_brand` int(11) unsigned NOT NULL AUTO_INCREMENT,

    у полей должен совпадать тип.
     
  4. kowapos

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

    С нами с:
    18 янв 2013
    Сообщения:
    120
    Симпатии:
    0
    понял, сделал так
    Код (Text):
    1. CREATE TABLE `as_shop_production` (
    2.   `id_product` int(11) unsigned NOT NULL AUTO_INCREMENT,
    3.   `name` varchar(750) DEFAULT NULL,
    4.   `id_brand` int(11) unsigned NOT NULL,
    5.   `id_catalog` int(11) DEFAULT NULL,
    6.   `price` int(11) DEFAULT NULL,
    7.   `date_create` int(11) DEFAULT NULL,
    8.   `date_update` int(11) DEFAULT NULL,
    9.   `views` int(11) DEFAULT NULL,
    10.   `rating` int(11) DEFAULT NULL,
    11.   PRIMARY KEY (`id_product`),
    12.   KEY `id_brand` (`id_brand`)
    13. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    а как через phpmyadmin int изменить на int unsigned?

    Добавлено спустя 52 минуты 55 секунд:
    узнал, можно запросом
    Код (Text):
    1. ALTER TABLE `as_shop_production` MODIFY `id_brand` INT UNSIGNED
    я так понял, лучше использовать INT UNSIGNED чем просто INT?
     
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    тип должен диктоваться условиями задачи. в данном случае, для синтетических ключей, просто без разницы. :)
     
  6. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Почему без разницы? UNSIGNED имеет в два раза больше значений, за счет того что не имеет знака. Соответственно для автоинкремента он предпочтительней. Или я чего упустил?

    Добавлено спустя 1 минуту 54 секунды:
    Из руководства:
    INT[(M)] [UNSIGNED] [ZEROFILL] Целое число нормального размера. Диапазон со знаком от -2147483648 до 2147483647. Диапазон без знака от 0 до 4294967295.

    Не лучше и не хуже, просто диапазон хранимых значений разный.
     
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    В реальности никто не достигает такого количества записей. Это всё равно, что сравнивать бесконечность и 2*бесконечность.
    Вывод: без разницы
     
  8. kowapos

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

    С нами с:
    18 янв 2013
    Сообщения:
    120
    Симпатии:
    0
    Всем огромное спасибо)