Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php sql连接需要进一步的帮助_Php_Mysql_Sql_Join - Fatal编程技术网

Php sql连接需要进一步的帮助

Php sql连接需要进一步的帮助,php,mysql,sql,join,Php,Mysql,Sql,Join,我被一个查询卡住了,我想显示来自不同表及其桥接表的数据。 各表如下: 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 A

我被一个查询卡住了,我想显示来自不同表及其桥接表的数据。
各表如下:

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 )

在正确的字段上联接表

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

连接将是:

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

键入
内部连接fbridgeid as fb
,应该是
内部连接fbridge as fb
,非常感谢所有查询都是一样的。。但数据正在重复。。我还使用了group by
选择p.name作为pname,p.price作为prize,p.discount作为ds,f.fname作为feature,v.value作为vlue从p.planid=b.planid内部连接桥b到b.fbridgeid=fb.fbridgeid内部连接特征f到fb.featureid=f.featureid内部连接值v到fb.valueid=v.valueid按pname分组结果:
pname prize ds特征vlue
介质30 20磁盘空间20gb小型20 15 bw 30gb
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)