gpt4 book ai didi

php - 如何join或left join三张表,从其中一张表中获取一条数据?

转载 作者:行者123 更新时间:2023-11-29 04:22:37 28 4
gpt4 key购买 nike

我有一个用户表、一个工作表和一个文件表;确切的表名称是 user_tablejobsfiles

files 表和jobs 表有一个公共(public)字段,jobs 表和users 表有一个公共(public)字段,但三者都没有公共(public)字段。所以 files 表有 jobid 等于来自 jobs 表的 id,jobs 表有 userid 等于来自 users 的 userid表。

示例记录

files table

id name path jobid
-------------------------------------------
7 test.gif uploads/test.gif 130

jobs table

id userid ponumber date
------------------------------------------------
130 1013 2322 10/14/2013 2:55:1pm

user_table table

userid username email fname sname
-------------------------------------------------------
1013 username email@email.com first last

文件 7 属于作业 130,作业 130 属于用户 1013。因此在页面上显示文件时,我还想显示文件的所有者,但那是两张表。

我该怎么做?我没有尝试过任何东西,因为我是 MySQL 编程的新手。如果我尝试猜测一些事情,它可能会是这样的:

SELECT *
FROM user_table u
INNER JOIN jobs j USING (userid)
LEFT JOIN files f ON j.id = f.jobid

这可能是一个如此疯狂的猜测,甚至不值得一提。

最佳答案

好吧,如果所有用户都有工作并且所有工作都有文件,或者您只想显示工作有文件的用户

SELECT *
FROM user_table u
INNER JOIN jobs j ON j.id=u.userID
INNER JOIN files f ON j.id = f.jobid

会那样做。

如果所有用户有工作并且所有工作有文件或者您想要显示所有用户,无论他们是否有文件工作然后

SELECT *
FROM user_table AS u
LEFT JOIN jobs AS j ON j.id=u.userID
LEFT JOIN files AS f ON j.id = f.jobid

会那样做。

HERE对连接的描述可能会帮助您更好地理解连接。

关于php - 如何join或left join三张表,从其中一张表中获取一条数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19411670/

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