2013-12-26 5 views
0

Я работаю над проектом, и я столкнулся с проблемой, поскольку у меня есть три разные таблицы, как показано в запросе и моментальных снимках. Я попытался выполнить ниже запрос и вставить результат запросаMysql joining Query

Запрос

select 
m.id,b.paybandname,m.payheadid,h.payheadname,m.basedon,find_in_set(h.id,m.basedon) as 
basedonone,m.amount,m.type from tblpay_paybandsystem b 
left join tblpay_payheadmapping m on b.id = m.paybandid 
left join tblpay_payheads h on m.payheadid = h.id 

Результат

enter image description here

То, что я хочу основан на колонке я хочу payheadname, например, в третья строка у нас есть 6 на основе столбца, но я хочу имя payhead, которое является «Basic» для id = 6 Теперь я вставляю снимки привязки таблиц, используемых в вышеуказанном запросе

tblpay_paybandsystem

enter image description here

tblpay_payheads

enter image description here

tblpay_payheadmapping

enter image description here

+0

Я хочу имя payhead вместо baseon, содержащего payheadid – Ashish

+0

Фотографии? Это не то, как мы катимся. Опубликовать надлежащие DDLS и/или sqlfiddle ВМЕСТЕ С ЖЕСТКОЙ РЕЗУЛЬТАТОМ – Strawberry

ответ

0

Это должно сделать это (не т)

select 
m.id,b.paybandname,m.payheadid,h.payheadname,h2.payheadname,find_in_set(h.id,m.basedon) as 
basedonone,m.amount,m.type from tblpay_paybandsystem b 
left join tblpay_payheadmapping m on b.id = m.paybandid 
left join tblpay_payheads h on m.payheadid = h.id 
left join tblpay_payheads h2 on m.basedon = h2.id 
+0

не работает, возвращая тот же результат, что и результат моего запроса – Ashish

+0

опечатка: последнее соединение должно быть на h2.id - также обратите внимание на h2.payheadname в предложении select когда-то был m.basedon – geert3

+0

Я не получаю u, пожалуйста, укажите правильный запрос, чтобы я мог лучше понять его. that uank u – Ashish