我正在尝试使用以下查询将我的用户表与另一个表联接...
SELECT * FROM (`activities`)
JOIN `users` ON `users`.`id` = `activities`.`user`
WHERE `user_subdomain` = 'hi' OR user_subdomain = ''
ORDER BY `activities`.`id` desc
LIMIT 10
有没有办法进行联接,以便用户的 id 不会替换活动的 id?
例如,当前如果存在 id 为 10 且用户为 2 的活动,则 id 将被 users 表的 id 替换,并在我运行查询后显示为 2。
非常感谢您的帮助!
每当连接表时,都应明确选择的列,而不是使用 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
尽管并非绝对有必要在每个表名前面加上表名,除非列名相同。
SELECT
activities.id AS activityid,
othercol,
users.id AS userid,
name,
anothercolumn