Member 12530125 Ответов: 3

Как выбрать один столбец с разным условием соединения в 2 таблицах


У меня есть 2 таблицы категории, файл
таблица категорий имеет id, bannerid, thumbid,
файловая таблица имеет идентификатор, путь

я хочу как

выберите category.id, category.bannerid, category.thumbid ,файл.путь слева присоединяется к файлу category. bannerid = file.id как bannerimagepath


выберите category.id, category.bannerid, category.thumbid ,файл.путь слева присоединяется к файлу category. thumbid = file.id как thumbimagepath

Что я уже пробовал:

привет у меня есть файл 2 таблиц
файл
id | путь
1 | c/image1.jpg
2 | c/image2.jpg
3 | c/image3.jpg
4 | c/image4.jpg
5 | c/image5.jpg
6 | c/image6.jpg
и второй табель
bannerimages
id | bigimageid | thumbimageid
1 | 2 | 1
2 | 3 | 4
3 | 5 | 6
Я должен узнать, как
идентификатор | знамя путь | путь большого пальца
1 | c/image2.jpg | c/image1.jpg
1 | c/image3.jpg | c/image4.jpg
1 | c/image5.jpg | c/image6.jpg

BinnyVishwant

Не могли бы вы объяснить яснее! что именно вам нужно сделать/требуется?

Ramesh Vishvas

можете ли вы подробнее описать свои требования?

Tomas Takac

Вам не хватает пункта FROM. Запрос должен выглядеть так: SELECT ... Из категории слева присоединитесь к файлу ВКЛ ...

3 Ответов

Рейтинг:
26

Tomas Takac

Вам нужно дважды присоединиться к таблице файлов. По этой причине вам нужно присвоить таблице два разных псевдонима, чтобы не было двусмысленности при ссылке на нее.

select
	category.id,
	bannerfile.[path] as bannerimagepath,
	thumbfile.[path] as thumbimagepath
from 
	[category]
	left join [file] as bannerfile on category.bannerid = bannerfile.id
	left join [file] as thumbfile on category.thumbid = thumbfile.id


Member 12530125

спасибо

Рейтинг:
2

anarayane

Вы можете использовать следующий запрос

Select id,(Select path from file where A.bigimageid =id ) as bannerPath,
(Select path from file where A.thumbimageid =id ) as ThumbPath FROM Bannerimages A


Рейтинг:
0

Member 12530125

Предположим, если таблица изображений баннера, если где-то в bannerid или thumbid содержит нулевое значение

тогда как будет писать запрос

Можете ли вы сказать мне, как справиться с null в join


Atlapure Ambrish

Для этого и создано левое соединение. В решении Томаса он уже предложил использовать LEFT join, это должно решить вашу проблему. В чем проблема?