我有两张桌子.一个用户,一个用于帖子.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) 我试图从2个表中获取列名.
我尝试了类似的查询:(SHOW COLUMNS FROM users) UNION (SHOW COLUMNS FROM posts)但这不起作用并返回语法错误.我尝试使用相同的查询,DESCRIBE但这也无效.如何在单个查询中获取多个表中的所有列名? 可能吗?