好。因此,我有一个名为jos_sobi2_fields_data的表,其中包含多个fid和节。例如,来自fid = 36的baseDate包含“名称”,来自fid = 39的baseData包含“地址”我需要编写一个查询,该查询将从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。那么,如何将它们分成两部分并排在彼此相邻的单独列中呢?

附言该部分仅与来自一个特定网站的信息有关,因此另一个网站可能是= 52。

最佳答案

您应该只使用联接...可能是这样的:

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

关于mysql - MySql语法(加入,UNION ALL)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10131850/

10-11 10:47