Mysql Join无需替换原始id的值

Mar*_*unt 1 php mysql sql join

我正在尝试使用以下查询将我的用户表与另一个表联系起来...

SELECT * FROM (`activities`)
JOIN `users` ON `users`.`id` = `activities`.`user` 
WHERE `user_subdomain` = 'hi' OR user_subdomain = '' 
ORDER BY `activities`.`id` desc 
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

有没有办法进行连接,以便用户的id不替换活动的id?

例如,当前如果存​​在id为10的活动,则用户2的id将被users表的id替换,并在运行查询后显示为2.

非常感谢您的帮助!

Mic*_*ski 5

无论何时加入表,都应该明确选择而不是使用的列SELECT *,并在多个表中使用相同的列名时为它们指定列别名.

SELECT 
  activities.id,
  activities.othercol,
  /* Alias to userid */
  users.id AS userid,
  users.name,
  users.anothercolumn
FROM (`activities`)
  JOIN `users` ON `users`.`id` = `activities`.`user` 
WHERE `user_subdomain` = 'hi' OR user_subdomain = '' 
ORDER BY `activities`.`id` desc 
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

虽然没有必要在每个表名前加上表名,除非列名相同.

SELECT 
  activities.id AS activityid,
  othercol,
  users.id AS userid,
  name,
  anothercolumn
Run Code Online (Sandbox Code Playgroud)