gpt4 book ai didi

php - 让 SQL 表字段自动链接到查找表

转载 作者:行者123 更新时间:2023-11-29 07:06:42 25 4
gpt4 key购买 nike

我在 MySQL 数据库中有几个表与此设置类似:

主表

---------------------
| id | name |
|-------------------|
| 0 | Architecture |
| 1 | Biology |
| 2 | Chemistry |
---------------------

大学 table

----------------------
| id | name |
|--------------------|
| 0 | Georgia Tech |
| 1 | Virginia Tech |
| 2 | Cal Tech |
----------------------

用户表

----------------------------------------------
| id | name | major_id | college_id |
|--------------------------------------------|
| 0 | John Smith | 2 | 0 |
| 1 | Kevin Lee | 2 | 1 |
| 2 | Matt Anderson | 0 | 2 |
----------------------------------------------

使用 PHP,我想使用与此类似的查询获取用户的所有信息:

SELECT * FROM users WHERE name=`$user`

MySQL 是否可以通过某种方式自动将“major_id”和“college_id”列链接到“major”和“college”表,以便上面的查询返回适当的值?

如果无法通过单个查询实现,那么多个查询是否会显着降低性能?

最佳答案

SELECT * FROM users WHERE name='$user'

此查询(您的查询在 $user 周围有反引号,反引号用于列名,使用双引号/单引号)将仅返回 users 表中的值。你不能让 MySQL“自动”构造你的连接。您必须明确地执行此操作,否则,如果您愿意,您将如何仅从用户表中获取信息?使用这样的 JOIN:

SELECT users.name AS Username, college.name AS College, major.name AS Major
FROM users
INNER JOIN college ON users.college_id = college.id
INNER JOIN major ON users.major_id = major.id

通过仅选择您真正需要的列来限制检索的列。因此,不要使用星号,而是编写 users.name 等。

JOIN syntaxMySQL Docs 中描述.

关于php - 让 SQL 表字段自动链接到查找表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6901586/

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