我有4个表,我希望使用mysql内部连接到用户名(表1)和fav类型(表4)。为了做到这一点,我需要使用user\u id获取表2上相应的fav\u id,然后使用fav\u id获取表3上的类型\u fav\u id,最后使用表3上的类型\u fav\u id获取表4上的类型\u fav。我将感谢任何帮助。
表1
Users
----------
user_id
first_name
last_name
表2
user_favorite
--------
user_fav_id
user_id
fav_id
表3
favorites
--------
fav_id
type_of_fav_id
表4
types_of_fav
--------
type_of_fav_id
type_of_fav
1条答案
按热度按时间cnwbcb6i1#
其实这很简单。只需连接四个表中的每一个,将每个表的主键链接到下表中对应的外键。然后可以在select子句中引用所需的字段。
在这里设置表名的缩写是个好主意。你不必这么做,但它更简洁,更容易处理。如果不这样做,则必须引用完整的表名,以避免字段引用中的歧义:
JOIN user_favorite on users.user_id = user_favorite.user_id
,例如。那可真是太啰嗦了。如果在引用字段时不包含表,解析器就不知道引用的是哪个字段,因为字段名在整个模式中不是唯一的。因此,您将得到一个不明确的字段引用错误。