2014-01-06 4 views
-1

Сначала я искал об этом, но я не нашел то, что я действительно хочу. Хорошо, я не эксперт в mySQL, поэтому у меня есть небольшая проблема для решения.INSERT с INNER JOIN

Итак, у меня есть 2 таблицы: Материалы и заказы, как показано ниже:

Заказов: Id_O | Client | material | etc..

Материалы: Id_M | Id_O

Примечание: 1-к-многим.

У меня есть таблица «заказы» для регистрации всех данных. Второй «материал» таблицы - это идентификация материалов, принадлежащих одному и тому же идентификатору, что означает, что у меня будут материалы: «material1», «material2» и т. Д. Для заказа с ID = '1'. Затем я хочу показать эту информацию как список.

  • OT_1 Material_1 - description1
  • OT_1 Material_2 - description2 ...

Таким образом, чтобы собрать эти данные, как я могу сделать запросы работать нормально? На самом деле, это мои сомнения. Потому что, когда я отправляю заказ, я хочу иметь возможность регистрировать 2 или 3 материала одновременно, для того же ID, что и раньше.

Спасибо.

+0

Где вы будете выбирающий их? У заказа уже нет права на материал? –

+0

Да, это можно вставить в таблицу материалов после того, как вы введете ее в таблицу ордеров. Да, вы можете сделать вставку с выделенным. – AgRizzo

+0

Выбор materails может быть статическим, это не проблема, потому что их немного. Но я могу сделать вставку из трех значений (пример) в одно и то же время? для того же ID, что и я. – pedroF

ответ

0

Если вы говорите о соотношении от 1 до многих (1 заказ может иметь много материалов), вы получите свой идентификатор orderID и свой массив материалов и перейдете к нему.

В этой конфигурации вы не должны иметь «материал» в таблице «заказы».

мне нужно, чтобы увидеть пример данных в заказах, но при условии, список:

$stmt = $db->query('SELECT * FROM orders'); 
$insert = $db->prepare('INSERT INTO materials VALUES (?,?)'); 
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
    $materials = explode(",", $row['material']); 
    foreach($materials as $material) { 
     $insert->execute(array($row["id_O"], $material)); 
    } 
} 
+0

Да, это отношения 1-к многим, как вы сказали. Кстати, описание материала может быть только в таблице заказов. Нет необходимости находиться в таблице материалов. Или как ты предлагаешь меня? – pedroF

+0

Это не хороший дизайн DMBS для дублирования данных, поэтому он должен быть либо в одном месте, либо в другом месте. –

+0

Да, я согласен, я ставлю только в таблице заказов. Таблица материалов, которую я создал, чтобы попытаться установить отношения между ними и установить связь с ID – pedroF