MySql语法(加入,UNION ALL)?

时间:2012-04-12 21:06:58

标签: mysql

确定。所以我有一个名为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节。

1 个答案:

答案 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>替换为节号(或准备好的语句占位符,甚至更好)。