确定。所以我有一个名为jos_sobi2_fields_data的表,其中包含多个fid和section。例如,来自fid = 36的baseDate包含“Names”,来自fid = 39的baseData包含“Addresses”我需要编写一个查询,该查询将从jos_sobi2_fields_data中选择数据,并将Names放在一列中,并将地址放在一个旁边它。到目前为止我已经尝试了
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。那么我如何将它们分成两个单独的列并且彼此相邻呢?
P.S。该部分仅涉及来自某个特定网站的信息,因此另一个网站可能是第52节。
答案 0 :(得分: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>
替换为节号(或准备好的语句占位符,甚至更好)。