2015-07-15 2 views
-2

У меня есть две таблицы:ВЫБРАТЬ с двумя внешними ключами для одного первичного ключа

1) «Папки», две колонки, FolderID (PrimaryKey) и FolderName (varchar, uniq);

2) «Изображения», три столбца, ID (Pr.Key), SrcFolderID и DestFolderID (оба являются иностранными ключами для Folders.FolderID).

Как сделать запрос на выборку, которая будет возвращать три колонки: Images.ID, SrcFolderName и DestFolderName

+1

Http: // StackOverflow. com/help/how-to-ask –

+1

Он работает так же, как если бы у вас был один внешний ключ для одного первичного ключа. Надеюсь, вы сможете понять это здесь. –

ответ

1

Попробуйте ниже query-

SELECT img.id AS Image_Id, fld1.foldername AS Source_foldername,fld2.foldername AS Dest_foldername 
FROM images AS img 
LEFT JOIN folders AS fld1 ON fld1.id=img.srcfolderid 
LEFT JOIN folders AS fld2 ON fld2.id=img.destfolderid; 

Примечание: Вы можете добавить другие условия, также в соответствии с требованием.

+0

Чем вы так много, это решение. –

0

Используйте as использовать другое имя для каждой присоединяемой таблицы (или просто добавить имя после имени таблицы):

JOIN RIGHT folders destination_folder ON... 

Для получения дополнительной информации смотрите здесь: http://www.w3schools.com/sql/sql_alias.asp