gpt4 book ai didi

php - 从两个表查询时如何使用外键

转载 作者:IT老高 更新时间:2023-10-29 00:16:06 25 4
gpt4 key购买 nike

我的问题很基本。它是关于如何使用外键从两个表中选择某些信息来构建我的查询?

table vehicles
+-------+----------+------------+
| id_car| car_model| car_owner |
+-------+----------+------------+
| 1 | VW | 132|
+-------+----------+------------+
| 2 | VW | 200|
+-------+----------+------------+
table users
+-------+----------+------------+
|user_id| user_name| user_phone |
+-------+----------+------------+
| 132 | Peter| 555-555 |
+-------+----------+------------+
| 200 | Jim | 555-333 |
+-------+----------+------------+

car_ownervehicles 表中的外键,它引用 users 表的主键 user_id

所以有人正在搜索所有大众汽车,我希望像 html 一样填充以下信息(是的,我知道这不是正确的方法 - 我使用它只是为了简化示例并显示来自每个表去):

>    echo "Car model:". `vehicles.car_model`
> echo "Car owner:". `users.user_name`
> echo "Contacts: ". `users.user_phone`

提前致谢。

最佳答案

我不确定您是否了解外键的用途。外键基本上表示“对于此条目,父表中必须有一个条目”。你说 user_id 是 vehicle 表中的外键,我不清楚。

那么,假设您有一个这样的表定义:

CREATE TABLE vehicles
(`id_car` int, `car_model` varchar(2), `car_owner` int);


CREATE TABLE users
(`user_id` int, `user_name` varchar(5), `user_phone` varchar(7)
, CONSTRAINT `fk_your_foreign_key` FOREIGN KEY (user_id) REFERENCES vehicles(car_owner)
);

当您要向表中插入新用户时,user_id 必须是 vehicles 表中 car_owner 列中的现有条目。

外键用于执行业务规则。每个用户都必须是车主吗?或者反过来,是否每辆车都必须由某人拥有?如果您对这两个问题的回答都是否定的,那么在这种情况下不要实现任何外键。但是,如果您可以肯定地回答"is",请这样做。

要获取您正在寻找的信息,只需执行

SELECT 
*
FROM
vehicles
INNER JOIN users ON vehicles.car_owner = users.user_id

关于php - 从两个表查询时如何使用外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15969170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com