Php 需要帮助从SQL中的两个表中获取所有数据吗

Php 需要帮助从SQL中的两个表中获取所有数据吗,php,sql,Php,Sql,我设置了一个表单,用户可以在其中输入一个人的用户名或姓氏。然后根据他们输入的内容选择用户名或姓氏,查询数据库并显示所有用户信息,以及他们是否有权访问某些区域。我需要查询两个表并获取用户输入的所有信息。我假设您使用联接,但我不太确定如何使用。现在,我有了一个从users表中获取所有数据的查询,我只需要在第二个表中添加帮助。这两张桌子看起来像这样 使用者{ 液体 用户名 密码 名字 姓氏 电子邮件 } 用户访问{ 液体 评估 发展 学习模块 项目 } 到目前为止,我使用的SQL是 SELEC

我设置了一个表单,用户可以在其中输入一个人的用户名或姓氏。然后根据他们输入的内容选择用户名或姓氏,查询数据库并显示所有用户信息,以及他们是否有权访问某些区域。我需要查询两个表并获取用户输入的所有信息。我假设您使用联接,但我不太确定如何使用。现在,我有了一个从users表中获取所有数据的查询,我只需要在第二个表中添加帮助。这两张桌子看起来像这样

使用者{ 液体 用户名 密码 名字 姓氏 电子邮件 }

用户访问{ 液体 评估 发展 学习模块 项目 }

到目前为止,我使用的SQL是

    SELECT *
FROM Users
WHERE username = '$username' OR lastname = '$lastname'

你是对的,你需要使用连接。这种类型的联接称为内部联接。您可以这样实现:

SELECT * from Users, userAccess WHERE Users.uid = userAccess.uid AND Users.uid = #;
我猜您将有一个id列,它也是userAccess表的主键。对于上述语句为真的每个条件,上述查询将在1条记录中提供来自两个表的数据

如果您使用的是MySQL,您可以在此处阅读有关连接的更多信息:


您没有提到您正在使用哪个数据库,尽管我猜是MySql

您需要做的是一个简单的内部联接:

SELECT u.uid 
    u.username, 
    u.password, 
    u.firstname, 
    u.lastname, 
    u.email, 
    ua.assessment, 
    ua.development, 
    ua.learningmodule, 
    ua.project
FROM Users u
INNER JOIN UserAccess ua
    ON u.uid = ua.uid
WHERE u.firstname LIKE '%$username%' OR u.lastname LIKE '%$lastname%';
请注意,我没有在UserAccess表中再次选择uid,因为它是多余的,因为您已经从Users表中选择了它,并且由于您是通过该键加入的,所以不再需要它

还要注意的是,我没有使用相等运算符(=),而是使用LIKE运算符,因为您更可能希望根据部分信息(如关键字和非完整单词)过滤信息

我建议您看一看面向初学者的SQL教程。似乎已经足够好了


我还建议您阅读关于如何在此处发布问题的指导原则,否则您将不会受到任何人的关注,而且他们会对您投反对票:)

很抱歉,如果很难阅读他们打印不正确的表格。括号中的每个单词都是一列哦,是的,还有其他一些,如果您刚开始使用SQL,请避免查询中的“SELECT*FROM”,而只选择您实际需要的字段,这样查询速度更快,代码更易于维护和调试。