2015-06-30 2 views
2

Я застреваю в запросе, где я хочу отображать данные из разных таблиц и их таблиц моста.
Таблицы:sql требуется дополнительная помощь

bridge (bid,planid,fbridgeid) 
fbridge (fbridgeid,featureid,valueid) 
features (featureid,fname) 
value (valueid,value) 
plans (planid,name,price,discount) 

Ниже мой запрос до сих пор:

SELECT 
(NAME AS pname, price AS prize, 
discount AS ds, fname AS feature, VALUE AS vlue 
FROM plans ) 

Я хочу, чтобы получить все столбцы из базы данных, но в соответствии с планами

like planid 1 ->> contains ->> feature id 1,2,3 and valueid 1,3,5 etc) 

ответ

0

Регистрация ваши таблицы в правильных полях.

SELECT * 
FROM plans p 
INNER JOIN bridge b ON p.planid = b.planid 
INNER JOIN fbridge fb ON b.fbridgeid = fb.fbridgeid 
INNER JOIN features f ON fb.featureid = f.featureid 
INNER JOIN value v ON fb.valueid = v.valueid 

Тогда вы можете выбрать любые поля из них.

SELECT p.name AS pname, p.price AS prize, p.discount AS ds, f.fname AS feature, v.value AS vlue 
FROM plans p 
INNER JOIN bridge b ON p.planid = b.planid 
INNER JOIN fbridge fb ON b.fbridgeid = fb.fbridgeid 
INNER JOIN features f ON fb.featureid = f.featureid 
INNER JOIN value v ON fb.valueid = v.valueid 
1

The Join с будет:

SELECT pl.name AS pname, pl.price AS prize , pl.discount AS ds , fe.fname AS feature, va.VALUE AS vlue 
FROM plans pl 
JOIN bridge br ON br.planid = pl.planid 
JOIN fbridge fb ON fb.fbridgeid = br.fbridgeid 
JOIN features fe ON fe.featureid = fb.featureid 
JOIN value va ON va.valueid = fb.valueid 
WHERE pl.plainid = 1 
+0

Спасибо очень все запросы работают так же .. но данные повторяются .. я также использовал группу, 'SELECT P .name AS pname, p.price AS prus, p.discount AS ds, f.fname Функция AS, v.value AS vlue Из планов p ВХОДЯЩИЙ СОЕДИНЕННЫЙ мост b ON p.planid = b.planid INNER JOIN fbridge fb ON b.fbridgeid = fb.fbridgeid INNER JOIN функции Р на fb.featureid = f.featureid INNER JOIN VALUE В на fb.valueid = v.valueid GROUP BY pname' –

+0

результат: 'PNAME приз DS особенность Vlue
среда 30 20 discspace 20GB небольшой 20 15 bw 30gb ' –

0
select b.bid,b.planid,b.fbridgeid,fb.fbridgeid,f.featureid,f.fname,v.valueid,v.value,p.name,p.price,p.discount from bridge as b 
inner join fbridge as fb on fb.bridgeid=b.bridgeid 
inner join features as f on f.featureId=fb.featureid 
inner join value as v on v.valueid=fb.valueid 
inner join plans as p on p.planid=b.planid 
where p.planid=1 and f.featureId in (1,2,3) and v.valueid in (1,3,5) 
+0

typo in' inner join fbridgeid as fb', это должно быть 'inner join fbridge as fb' – Arulkumar

+0

Вы правы .. –

Смежные вопросы