如何加入两个表用户名和消息表

时间:2017-09-25 11:24:53

标签: php

如何加入两个表用户名和消息表

表一:用户。

                        |user_id |  username|
                        |-------------------|  
                        |1       |     joe  |
                        |2       |     james|    
                        |3       |     john |
                        --------------------

表二:: - msg

                        ---------------------
                        |user_id|  msg      |
                        |------ |  -------- |
                        |2      |   hey     |
                        |3      |   hi      |
                        |1      |  sups guys| 
                        |2      |   am good |
                        --------------------- 

我想要这样的结果:

                        --------------------
                        |username| msg      |
                        --------|-----------|
                        |james   |hey       |
                        |john    | hi       |  
                        |joe     | sups guys|
                        |james   | am good  |

最后我怎样才能在网络浏览器上使用php从数据库中回显它 谢谢

2 个答案:

答案 0 :(得分:0)

您需要使用PDO或mysqli扩展来进行数据库操作。

您的查询应该是

SELECT username, msg FROM msg JOIN users ON msg.user_id = users.user_id

使用PDO的示例:

$host = '127.0.0.1';
$db   = 'test';
$user = 'root';
$pass = '';
$charset = 'utf8';

$dsn = "mysql:host={$host};dbname={$db};charset={$charset}";
$opt = [
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES   => false,
];
$pdo = new PDO($dsn, $user, $pass, $opt);

$stmt = $pdo->prepare('SELECT username, msg FROM msg JOIN users ON msg.user_id = users.user_id');
$stmt->execute();
$usersMessages = $stmt->fetchAll(PDO::FETCH_ASSOC);

答案 1 :(得分:0)

我认为就像这样:

SELECT u.username, m.msg
FROM users u
INNER JOIN msg m ON m.user_id = u.user_id

应该没问题