我有一个表users
,其中列profile_image
和cover_image
这两个指向id
中的images
。
TABLE images (
id,
url,
description,
...
)
TABLE users (
profile_image (foreign key ON images.id),
cover_image (foreign key ON images.id),
...
)
我想要检索:
images.url AS profile_image
后users.profile_image = images.id
加入images.url AS cover_image
后users.cover_image = images.id
。答案 0 :(得分:4)
您可以按如下方式加入两次:
SELECT i.url AS profile_image, i2.url AS cover_image
FROM users u
INNER JOIN images i on u.profile_image = i.id
INNER JOIN images i2 on u.cover_image = i2.id
WHERE u.id = ....
我还建议命名profile_image_id
和cover_image_id
之类的外键,以便明确该列指向外表中的某种ID。试着遵循这个惯例。