有A.B兩個資料表
我從A網頁 新增一筆ID和身高到A資料表
希望能從B資料表中找出相同ID的NAME 新增到A資料表中
A資料表欄位
ID NAME Height
B資料表欄位
ID NAME
1 JAMES
2 MARS
在A網頁 輸入 1 和180
在資料庫
可以呈現
ID NAME Height
1 James 180
以下是我的程式碼 只能用id抓到name接下來就不知道怎麼處理了
<?php
mysql_query ("INSERT INTO A ( ID,NAME) SELECT ID,NAME
FROM B
WHERE B.ID = '$ID'");
?>
你的意思是先透過網頁送出後,已經先新增好A資料表的 id 和 height 的欄位資料,餘下 name 欄位未填,然後想從 B 資料表用 id 取得 name 來補到 A 資料表的 name 欄位嗎?
那麼可以用子句試試看...
UPDATE A SET name=(SELECT name FROM B WHERE id='你要的ID' WHERE id='你要的ID'
不過既然要做資料表關聯,其實 B 資料表已經有 name 了,就不需要在 A 資料表多個 name 欄位,讓 A 資料表只有 id 和 height 兩個欄位就好,A 資料表與 B 資料表間有個共同的 id 欄位做彼此的關聯,之後如果需要同時取出指定 id 的 name 和 height 的話,可以利用 MySQL 語法將他們合併一起取出...
SELECT * FROM A LEFT JOIN B USING(id) WHERE id='要查的ID'
如果覺得合併語法太麻煩,在資料表資料變動頻率不大的情況下也可以另外建個view 資料表做為查詢用,建立view語法大致如下:
CREATE VIEW view資料表名稱 AS (SELECT id,name,height FROM A資料表 LEFT JOIN B資料表 USING(id) WHERE 1)
將來要取資料的話只要直接從 view 資料表取得即可..
SELECT * FROM view資料表 WHERE id='要查的ID'