【问题标题】:Php - about SQL-query with WRONG(?) databasePHP - 关于使用错误(?)数据库的 SQL 查询
【发布时间】:2016-06-19 07:41:39
【问题描述】:

对你来说简单的问题,但对我来说很难解决。=)
我有一个数据库 - 用户。在 USERS 中,我有两个表 - USERS_INFO 和 EVENTS。

USERS_INFO contain next fields:
user_id
user_name 
...

EVENTS contains next:
event_id
user_id
obj_id     (this element means, for examle, when user_1 will change information
event           about user_2 in this table appears record like: 
                                           event_id=1
                                           user_id=user_1
                                           obj_id=user_2)

所以,如您所见,我从表 EVENTS 中的 user_id 字段中获取有关 user_id、obj_1 的信息。 我连接上了。

问题是 = 如何创建正确的查询? 我需要看到这样的东西:

user_1 user_4 some_event_like_edit(表示 user_1 在 user_4 中改变了 smth)

我可以创建查询,但它工作错了。我做了 -

 SELECT USERS_INFO.user_name, EVENTS.event FROM USERS_INFO,EVENTS WHERE USERS_INFO.user_id=EVENT.user_id

但是我无法为另一个字段 obj_id 创建查询! 结果给我 EVENTS.user_id=EVENTS.obj_id 的字段

我该怎么办??

【问题讨论】:

    标签: php sql phpmyadmin


    【解决方案1】:

    您只需加入user 表两次,如下所示:

    SELECT u_1.user_name as Who_Changed,u_2.user_name as Who_Got_Changed, e.event
    FROM EVENTS e
    INNER JOIN USERS_INFO u_1
     ON (u_1.user_id=e.user_id)
    INNER JOIN USERS_INFO u_2
     ON (u_2.user_id=e.obj_id)
    

    【讨论】:

    • 感谢您的回答!但这里的 u_1 和 u_2 是什么?只是名字?还是它在数据库中的记录?
    • 是别名,只是调用表的一种方式。 u_1 表示第一个用户表,u_2 是第二个。你可以把它换成你想要的名字,没关系。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-18
    • 2012-09-02
    • 2014-11-29
    相关资源
    最近更新 更多