2016-05-31 47 views
0

我目前遇到的問題是將值插入數據庫表中,該表使用另一個表中的外鍵將它們對齊在一起。表格非常簡單。一個擁有關於項目的信息,另一個擁有項目圖像的值。在這裏他們詳細。如何使用外鍵將數據插入表中

projects

project_id int(50) PRIMARY KEY NOT NULL AUTO_INCREMENT, 
project_name varchar(50) NOT NULL, 
project_permitted timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "The date that the project took place.", 
project_in varchar(50) NOT NULL COMMENT 'The place where the project took place (ie the city and state).', 
project_type varchar(50) NOT NULL COMMENT 'The project type (ie residentual, commercial, etc).', 
project_description longtext, 
project_published timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 

這裏是第二個表稱爲project_images

image_id int(50) PRIMARY KEY NOT NULL AUTO_INCREMENT, 
project_id int(50), 
image_url varchar(50) NOT NULL, 
CONSTRAINT fk_projects FOREIGN KEY (project_id) REFERENCES projects(project_id) 

我所試圖做的是使用使用PROJECT_ID從項目表中插入值到第二個表子查詢。該查詢看起來是這樣的:

insert into project_images (project_id, project_url, project_description) 
values (
(select project_id from projects where project_name = 'The Venue'), 
"images/theVenue.png", 
"The Venue: an appartment complex in Austin, Texas." 
) 

與此查詢我不斷收到寫着

東西的「你缺少一個逗號或閉架 附近PROJECT_ID的作用效果的誤差

任何人都可以幫助或指出處理這種情況的最佳方式。

+1

使用單引號'''而不是雙''' –

回答

0

修改您的查詢爲

insert into project_images (project_id, project_url, project_description) 
select project_id , 
"images/theVenue.png", 
"The Venue: an appartment complex in Austin, Texas." 
from projects where project_name = 'The Venue'; 
+0

好的,謝謝。Im new at this,I will now now on now now – kaley36

+0

@ kaley36,考慮接受答案,如果有幫助。 – Rahul

0

尋找到這個問題有點多後,似乎你不能使用子查詢,我用它來得到一個列的值的方式,但是,列可以直接只要插入的外鍵指向已插入的另一個表中的主鍵。整個使用這個查詢的目的是爲了一個PHP項目,所以我想我會在項目中做一個select查詢來獲得它的ID,然後將其添加到查詢project_images表的sql中。這似乎是做到這一點的唯一方法。

相關問題