Php MySQL外键。。困惑的

Php MySQL外键。。困惑的,php,mysql,foreign-keys,Php,Mysql,Foreign Keys,我正在努力理解MySQL外键,希望有人能帮我 我有两个具有以下结构的表 报告 +-----------+------+-----------+------------------+ |id|user_id |status|report_type|request_id | +-----------+------+-----------+------------------+ | | +--

我正在努力理解MySQL外键,希望有人能帮我

我有两个具有以下结构的表

报告

+-----------+------+-----------+------------------+
|id|user_id |status|report_type|request_id        |
+-----------+------+-----------+------------------+
|                                                 |
+-------------------------------------------------+
使用者

我在reports表中有一个外键(
fk\u uid
),它将reports表中的
user\u id
列链接到users表中的
id

我想在PHP中运行一个MySQL查询,它将获取给定用户的所有报告(通过用户名或用户id,不确定哪一个是最好的?)


谢谢

它可以通过简单的内部连接来完成

select 
users.username, 
users.f_name, 
users.l_name , 
reports.status,reports.report_type,
reports.request_id from reports
inner join users on users.id = reports.user_id
如果要搜索特定用户,请使用where条件作为

select 
users.username, 
users.f_name, 
users.l_name , 
reports.status,
reports.report_type,
reports.request_id from reports
inner join users on users.id = reports.user_id
where users.username = 'some user name'
如果你想用userid,那么条件是什么

where users.id = 'your user id'

若您只想获取报表,而不想获取用户信息,那个么若您有用户id,就可以直接查询报表表

假设在$userid中的变量中有userid

从报告中选择*user\u id=$userid

如果您想从两个表中获取数据,则需要执行如下连接

特定用户的报告:

从报告r,users u中选择r.*,u.*,其中r.user\u id=$userid
和r.user_id=u.id

所有用户的报告

从报告r,用户u中选择r.*,u.*,其中r.user\u id=u.id

如果您想了解更多关于加入的信息,请访问此链接


这与外键无关。外键只是加强数据完整性的工具。您只需要询问如何执行(相当基本的)SELECT查询。
where users.id = 'your user id'