0

好的。所以我有一个名为 jos_sobi2_fields_data 的表,其中包含多个 fid 和部分。例如,fid=36 中的 baseDate 包含“名称”,fid=39 中的 baseData 包含“地址”它。到目前为止我已经尝试过

Select baseDate 
from jos_sobi2_fields_data 
WHERE fid=36 
and section = 54; 
UNION ALL 
Select baseData 
from jos_sobi2_fields_data 
WHERE fid=39 
AND section = 54;

但是当我查询它时,它首先列出来自fid = 36的baseData,然后在它下面列出来自fid = 39的baseData。那么我如何让它两个将两者分开成单独的列呢?

PS 该部分仅涉及来自一个特定网站的信息,因此另一个网站可能是 section = 52。

4

1 回答 1

2

你应该只使用一个连接......可能是这样的:

SELECT jsfdName.baseData AS Name, jsfdAddr.baseData as Address
FROM jos_sobi2_fields_data AS jsfdName
JOIN jos_sobi2_fields_data AS jsfdAddr USING( section, sid )
WHERE jsfdName.fid = 36 AND jsfdAddr.fid = 39
    AND section = <section>

替换<section>为节号(或准备好的语句占位符,甚至更好)。

于 2012-04-12T21:12:14.850 回答