【发布时间】:2016-11-12 16:29:44
【问题描述】:
您好,我是 PHP 和 MYSQL 的初学者。我做了两张桌子。主表“客户”是:
id | name | place | email
1 bob berlin bob@bob.com
2 kary dresden kary@kary.com
3 sam zurich sam@sam.com
“menu_id”是外键的子表“orders”是:
id | menu_name | menu_id | date_of_order
1 sandwich 2 2016-05-03
2 fruits 3 2016-05-02
3 pizza 1 2016-05-04
4 salad 1 2016-05-06
现在通过一个简单的 LEFT JOIN,我可以查看哪个客户在哪个日期下的订单。
但问题是,如果在我的“客户”表中添加新用户,我无法将其“id”作为外键插入到“menu_id”列中。
之后假设我这样做了
INSERT INTO customers (name, place, email)
VALUES ('joe', 'melbourne', 'joe@xyz.com')
在我的订单表中
INSERT INTO orders(menu_name, menu_id, date_of_order)
VALUES('pizza', 'SELECT id FROM customers WHERE email = joe@xyz.com', '2016-05-09')
在此之后,“订单”表看起来像
id | menu_name | menu_id | date_of_order
1 sandwich 2 2016-05-03
2 fruits 3 2016-05-02
3 pizza 1 2016-05-04
4 salad 1 2016-05-06
5 pizza 0 2016-05-09
“订单”表中的 menu_id 应该显示“4”而不是 0。我也尝试过 LAST_INSERT_ID(),但它得到的值仍然是 0。我不知道为什么会这样。请帮忙
【问题讨论】:
-
如果你不给我们看一些代码,就很难猜出哪里出了问题。
-
在“客户”表中,我将客户(姓名、地点、电子邮件)值(“joe”、“new_york”、“joe@joe.com”)插入到订单表中我在订单中插入(menu_name、menu_id、date_of_order)值('pizza'、'SELECT id FROM customer where email ='joe@joe.com'、'2016-05-09')
-
点击问题下方的编辑以在此处添加相关代码。 cmets 中的代码几乎不可读。
-
完成@Jocelyn 请立即查看
标签: mysql database foreign-keys