【发布时间】:2015-01-19 10:37:22
【问题描述】:
我很难从 MySQL 数据库中检索表中的数据。 我有 2 个无法合并的不同数据库,但第一个数据库中有一个与第二个数据库相同的表。
描述数据库 1 表:区域:ar_id、名称、密码。
说明数据库 2 表:用户:id、用户名、密码。
现在,当用户登录时,他登录了第二个数据库。在用户的每个页面中,我都使用$_SESSION['username'] 来调用用户名。
重要的是,在每个页面中,我都有一个表,它使用 2 数据库中的用户名显示来自不同表的数据;否则 SQL 要具体,并且只为每个用户提供他们自己的信息。没关系。这是 SQL:
SELECT Client_table.Name, Client_table.Client_Id FROM Client_table, user WHERE user.username = '" . $_SESSION['username'] . "' AND Client_table.Branch = user.area Order by Name ASC
在其中一个页面中,我完全使用带有此 SQL 的第一个数据库来显示表中的数据:
select site_id, site_name from sites WHERE srep_id = 5
AND status = 1 or status = 2
order by site_name asc
问题:我想使用第二个数据库中的用户名或 ID 在表中显示此 SQL 数据,但返回空表(我在此页面中包含两个数据库)。这是我当前的 SQL,但仍然没有显示任何内容:
SELECT cl.client_name, st.site_id, st.site_name
FROM Database1.sites st
JOIN Database2.user u ON u.id = st.ar_id
JOIN Database1.clients cl ON cl.client_id = st.client_id
WHERE Database1.st.name = '".$_SESSION['username']."'
AND st.status > 0
ORDER BY st.site_name ASC
注意:这是一个花了我将近一周时间的大问题! 请有人帮忙!
【问题讨论】:
-
你能显示表名和它们的列吗?
-
我认为你正在寻找的是 mysql 中的 GRANT 命令。在这里阅读:dev.mysql.com/doc/refman/5.1/en/grant.html.
-
@minh 这是来自数据库 1 的表名称:区域,站点;数据库 2:用户、客户;这些是两个数据库及其表名
-
@ElieMbuyamba,我不明白你为什么要比较
Database1.st.name = '".$_SESSION['username']."'? -
@好吧,事实是我是 PHP 的初学者。当涉及到将变量与 SQL 语句匹配时,这就是我使用它的方式。请随时为我提供更好的答案,以便我纠正我的错误。谢谢