php - mysql select query for multiple ID's that call name 来自同一个用户名表

标签 php mysql syntax

快速提问。感觉像个菜鸟,但还没有找到正确的语法。

有 3 个表。

T1- 评估 ID(自动增量) 检查员ID, 助理ID, 植物名

T2- 用户ID(自动增量), 用户名, 姓名

T3- plantID(自动增量) 植物名

基本上我想要一个与 T1 非常相似的 php/mysql 表,但我想要的不是列出 ID,而是名称。到目前为止,这是我的电话:

SELECT DISTINCT a.AssessmentID, u.Name, a.PlantAssistID, p.PlantName 
                FROM assessmentscores AS a, user AS u, plant AS p
                WHERE u.userID=a.InspectorID AND u.Name='$name' AND p.PlantID=a.Plant

这是因为 u.Name 会给我检查员的名字,但我不知道如何调用第二个 (a.PlantAssistID)。只需为两者使用相同的名称即可。

我应该使用对服务器的什么调用来返回两个不同的名称。任何帮助将不胜感激

最佳答案

首先要做的事情是:如果您想从评估表中进行选择并使用其他表扩充结果集,请考虑使用 LEFT JOIN。如果您想要限制性更强的结果,即仅返回与现有用户实际关联的评估,请改用 INNER JOIN。下面的示例使用 LEFT JOIN

不确定这是否正是您想要的,但您可以尝试:

SELECT a.AssessmentID as a_id, u.Name as u_name, a.PlantAssistID as a_plantassistid, p.PlantName as p_plantname, uass.Name as u_ass_name
    FROM assessmentscores a
    LEFT JOIN user u ON u.UserID = a.AssessmentID
    LEFT JOIN plant p ON p.PlantID = a.Plant
    LEFT JOIN user uass ON uass.UserID = a.PlantAssistentID

结果:

array(
    'a_id'            => int    /* AssessmentID */
    'u_name'          => string /* User name */
    'a_plantassistid' => int    /* Assessment.PlantAssistID */
    'p_plantname'     => string /* Plant name */
    'u_ass_name'      => string /* The user name of the user with assistent_id */
);

关于php - mysql select query for multiple ID's that call name 来自同一个用户名表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7084188/

相关文章:

php - strip_tags() 功能黑名单而不是白名单

php - 在 PHP 中从 SQL 查询检索结果的问题

javascript - Sublime Text 3 - jQuery 高亮错误

php - 如何限制此 PHP 代码抓取与给定域具有相同基础的链接?

php - 使用 GROUP BY 和 ORDER BY 条件在两个 MySQL 表上加入与联合

php - 如何将查询构建器与 sum() 列和 groupBy 一起使用

mysql - SELECT *, sum() 等式仅返回一行

mysql - 如何使用sql计算一小时(日期时间)内的记录数

java - 你需要关闭流吗?

Java静态方法似乎被设置为一个类型的实例? (句法)