小编ran*_*php的帖子

PHP/MySQL:在没有别名的连接查询中获取具有相同名称的多列?

我有两张桌子.一个用户,一个用于帖子.users表包含以下字段:

id, username, password, created_at, modified_at
Run Code Online (Sandbox Code Playgroud)

posts表包含以下字段:

id, user_id, title, body, created_at, modified_at
Run Code Online (Sandbox Code Playgroud)

当我使用如下查询时:

SELECT * FROM `users` LEFT OUTER JOIN `posts` ON users.id=posts.user_id
Run Code Online (Sandbox Code Playgroud)

并使用PDO获取结果:

$sth = $this->$default_connection->prepare($query);
$sth->execute();
$sth->fetchAll(PDO::FETCH_ASSOC);
Run Code Online (Sandbox Code Playgroud)

返回的数组将覆盖具有相同名称的所有列,id, created_at, modified_at如下所示:

 Array
(
    [0] => Array
        (
            [id] => 1
            [username] => johnSmith
            [password] => 2348r7edf8s79aa0230
            [created_at] => 0000-00-00 00:00:00
            [modified_at] => 0000-00-00 00:00:00
            [user_id] => 18
            [title] => First Post
            [body] => Just testing...
        )
)
Run Code Online (Sandbox Code Playgroud)

id未显示用户的字段,而是由id帖子覆盖.created_at和modified_at字段也是如此.

我相信我可以通过使用别名或类似的东西来解决这个问题:

    SELECT 
       users.id, 
       users.username, 
       users.password, …
Run Code Online (Sandbox Code Playgroud)

php mysql pdo join duplicates

13
推荐指数
2
解决办法
1万
查看次数

MySQL - 从多个表中显示列

我试图从2个表中获取列名.

我尝试了类似的查询:(SHOW COLUMNS FROM users) UNION (SHOW COLUMNS FROM posts)但这不起作用并返回语法错误.我尝试使用相同的查询,DESCRIBE但这也无效.如何在单个查询中获取多个表中的所有列名? 可能吗?

php mysql multiple-tables describe

4
推荐指数
2
解决办法
1万
查看次数

标签 统计

mysql ×2

php ×2

describe ×1

duplicates ×1

join ×1

multiple-tables ×1

pdo ×1