多外键表关联查询问题:如何关联TABLE1与TABLE2获取完整URL?
解决方案
因为你的TABLE1中有三个字段(video_url、image_url、gif_url)都是关联TABLE2的外键,所以需要多次关联TABLE2,每次对应一个外键字段,并给TABLE2取不同的别名来区分。
示例SQL语句
SELECT t1.id, t1.caption, video.url_storage AS video_url, img.url_storage AS image_url, gif.url_storage AS gif_url FROM TABLE1 t1 LEFT JOIN TABLE2 video ON t1.video_url = video.id LEFT JOIN TABLE2 img ON t1.image_url = img.id LEFT JOIN TABLE2 gif ON t1.gif_url = gif.id WHERE t1.id = 5; -- 可选,根据需要过滤数据
结果说明
执行上述语句后,你会得到如下格式的结果:
| id | caption | video_url | image_url | gif_url |
|---|---|---|---|---|
| 5 | HAHA | null | www.google.com | www.facebook.com |
原方法无效的原因
如果只做一次FULL JOIN,只能匹配TABLE1中某一个外键与TABLE2的关联关系,另外两个外键字段自然还是显示原始的ID值。通过多次关联并使用别名,才能分别将三个外键对应到TABLE2中的实际存储地址。
内容的提问来源于stack exchange,提问作者ryandra
相关产品推荐
相关产品推荐

