2014-01-06 165 views
-1

我首先搜索了它,但是我沒有找到我真正想要的東西。 好吧,我不是mySQL的專家,因此我有一個小問題需要解決。INSERT with INNER JOIN

所以,我有2個表:材料和訂單如下:

訂單: Id_O | Client | material | etc..

材料: Id_M | Id_O

注:1對多的關係。

我有表「訂單」來註冊所有的數據。 「材料」的第二個表格是識別屬於同一個ID的材料,這意味着對於ID ='1'的訂單,我將具有材料:'material1','material2'等。 然後,我想將該信息顯示爲列表。

  • OT_1 Material_1 - 說明1
  • OT_1 Material_2 - 廣告內容描述 ...

因此,收集這些數據,我怎樣才能讓查詢正常工作?事實上,這是我的疑問。 因爲當我提交訂單時,我希望能夠同時註冊2或3份材料,使用與我之前所說的相同的ID。

謝謝。

+0

哪裏你從選擇它們?訂單不能擁有物質權利? –

+0

是的,插入訂單表後可以插入到材料表中。是的,您可以使用select進行插入。 – AgRizzo

+0

選擇matera可以是靜態的,不是一個問題,因爲很少。 但我可以同時插入3個值(例如)?對於我所引用的相同ID。 – pedroF

回答

0

如果你正在談論一對多的關係(一個訂單可以有很多材料),那麼你會得到你的訂單ID和你的材料數組並循環。

但是,在此配置中,您不應該在「orders」表中具有「材料」。

我需要看到訂單數據的例子,但假設一個列表:

$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

是的,你說的是一對多的關係。 順便說一句,材料描述可以在訂單表中。沒有必要在材料表中。或者你如何建議我? – pedroF

+0

重複數據不是很好的DMBS設計,所以它應該在一個地方或另一個地方。 –

+0

是的,我同意,我只是在表中下訂單。我創建的材料表只是爲了嘗試建立它們之間的關係並使其與ID的關聯 – pedroF