vengateshwaran Ответов: 1

Как я могу создать таблицу представлений, используя более двух запросов соединения таблиц


Я пишу запрос для отображения данных, и я хочу создать таблицу, которая содержит данные запроса, есть ошибка, возникающая при выполнении этого запроса для обрешетки таблицы, может ли кто-нибудь предложить мне лучший способ создать таблицу представления с помощью этого запроса

SELECT 
	a.*,
	b.fullname,
	b.lastname,
	c.*,
	d.*,
	e.*,
	f.* 
FROM 
	educationaldetails as a 
JOIN registration as b on a.hiremee_id=b.hiremee_id 
JOIN assessment as c on a.hiremee_id=c.hiremee_id 
JOIN userresource as d on a.hiremee_id=d.hiremee_id 
JOIN candidateselectionlist as e on a.hiremee_id=e.hiremee_id 
JOIN candidaterejectionlist as f on a.hiremee_id=f.hiremee_id 
where b.status='active'


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

SELECT 
	a.*,
	b.fullname,
	b.lastname,
	c.*,
	d.*,
	e.*,
	f.* 
FROM 
	educationaldetails as a 
JOIN registration as b on a.hiremee_id=b.hiremee_id 
JOIN assessment as c on a.hiremee_id=c.hiremee_id 
JOIN userresource as d on a.hiremee_id=d.hiremee_id 
JOIN candidateselectionlist as e on a.hiremee_id=e.hiremee_id 
JOIN candidaterejectionlist as f on a.hiremee_id=f.hiremee_id 
where b.status='active'

ZurdoDev

В чем проблема с тем, что у вас есть?

1 Ответов

Рейтинг:
2

chaau

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

Когда вы используете a.*, c.*, d.*, e.*, f.* в вашем запросе повторяющиеся столбцы будут перечислены несколько раз. Хотя это нормально использовать в обычном операторе select для целей отображения, его нельзя использовать в качестве представления или в качестве таблицы CREATE AS.

Что вам нужно сделать, так это перечислить столбцы, которые вы хотите видеть в своем представлении, и если есть повторяющиеся имена, то используйте псевдонимы, например:

SELECT 
	a.hiremee_id,
	b.fullname,
	b.lastname,
	c.score,
	c.rank,
	d.source,
	e.listname as select_listname,
	f.listname as reject_listname
FROM 
	educationaldetails as a 
JOIN registration as b on a.hiremee_id=b.hiremee_id 
JOIN assessment as c on a.hiremee_id=c.hiremee_id 
JOIN userresource as d on a.hiremee_id=d.hiremee_id 
JOIN candidateselectionlist as e on a.hiremee_id=e.hiremee_id 
JOIN candidaterejectionlist as f on a.hiremee_id=f.hiremee_id 
where b.status='active'


Обратите внимание, как я использовал разные псевдонимы для дублированного столбца listname:
e.listname as select_listname,
f.listname as reject_listname