Php 如何在MySQL查询中返回相关字段而不是引用号
我有一个用于许多表的通用MySQL语句,它只检索单个表的所有数据:Php 如何在MySQL查询中返回相关字段而不是引用号,php,mysql,database,database-design,phpmyadmin,Php,Mysql,Database,Database Design,Phpmyadmin,我有一个用于许多表的通用MySQL语句,它只检索单个表的所有数据: $table = "profiles";//set static for example $result = mysql_query("SELECT * FROM `$table`"); 我希望结果显示位置中的文本,而不是作业id。 如果我仍然希望我的查询保持通用性,并且可能有多个字段引用了其他表,而我希望相关文本而不是id,我该如何做 mysql> show columns from profiles; +------
$table = "profiles";//set static for example
$result = mysql_query("SELECT * FROM `$table`");
我希望结果显示位置
中的文本,而不是作业id
。
如果我仍然希望我的查询保持通用性,并且可能有多个字段引用了其他表,而我希望相关文本而不是id,我该如何做
mysql> show columns from profiles;
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| staff_id | int(11) | NO | PRI | NULL | auto_increment |
| job_id | int(11) | NO | | NULL | |
| name | varchar(100) | NO | | NULL | |
+-------------+--------------+------+-----+---------+----------------+
mysql> show columns from job_positions
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| job_id | int(11) | NO | PRI | NULL | auto_increment |
| position | varchar(100) | NO | | NULL | |
+-------------+--------------+------+-----+---------+----------------+
是否可以在这些字段上设置某种关系,然后对查询发出命令以返回相关文本而不是id?您可以创建一个视图:
create or replace view info as
select p.job_id as job_id, p.name as name, j.position as position
from profile as p, job_position as j where p.job_id=j.job_id
然后您仍然可以使用您的查询
$table = "info";
$result = mysql_query("SELECT * FROM `$table`");
听起来您想要一个好的PHP ORM库:这看起来很有希望,但是没有视图的表呢?是否有方法检查表上的视图,如果有,则运行查询,其中$table=$tablename。“\u view”否则$table=$tablename?通用mysql语句的要点是$table是从用户操作自动分配的,例如,他们单击“配置文件”按钮,以便将“配置文件”分配为$table。我不能将其改为“人物视图”,因为这会破坏程序中的其他内容。因此,我需要在运行SQL之前对其进行更改。因此,如果我调用我创建的视图“profile\u view”,我可以使用$table。“u view”但是,使用此通用语句的其他查询将失败,因为没有为它们创建视图,因此没有$table。”