1
返回数据考虑此UNION两个(或更多)的查询:需要像UNION的查询,但在第二的相应列的别名和第n个查询,而不是所述第一查询的列/别名
SELECT activity AS activity1, completion AS status1, date_end AS date1
FROM activities
WHERE (
matter LIKE '%JR161167'
AND activity LIKE '1.1 %'
AND DATEDIFF(CURDATE() , date_end) <120
)
UNION
SELECT activity AS activity2, completion AS status2, date_end AS date2
FROM activities
WHERE (
matter LIKE '%JR161167'
AND activity LIKE '1.2 %'
AND DATEDIFF(CURDATE() , date_end) <120
)
活性列将包含一个可变字符串值,但该字符串将可靠地与1.1
或1.2
或1.3
一起前置至1.9
。
问题栏也是一个字符串,但会可靠地追加一个类似于JR161167
的帐号。
我想查询已经从内部过去的120天(这就是DATEFIFF
部分)DATE_END所有记录,符合指定帐号(JR161167),但在活动场中包含的任何和所有子“1 ñ“。
使用UNION可从单个表“activities”中返回正确的数据,但似乎没有办法在第一个查询的列或别名下标题结果集。相反,我想是这样的:
activity1 status1 date1 activity2 status2 date2
--------------------------------------------------------------------------------
1.1 Step 1 begins... Incomplete 2017-4-16 1.2 Step 2 begins... Incomplete 2017-4-30
相反,我的查询栈的所有结果,不管是否含有1.1,1.2,1.3,等等,一个别名列标题,activity1
下。与日期和完成字段数据相同的东西,它并不会很好地分类到相应的日期1,日期2等或状态1,状态2等。
我最近读了一个看起来像这样的例子,它貌似我要实现的逻辑,我不知道是否有人能理解其意图,并帮助我制定正确的查询:
SELECT date_end
IF(WHERE description LIKE '1.1 %') AS date1,
IF(WHERE description LIKE '1.2 %') AS date2`
FROM activities
很不错的!加入,而不是联盟。这是我的项目的关键部分。这绝对有用。 – TARKUS
@TARKUS欢迎您,我已经添加了第二种方式来执行查询,加入后就像您应该使用它们一样;) – Blag
您的第二种方式更加易于管理,因为我必须将JOINS X 9(步骤1.1 - 1.9),并循环数千个'事项'或账号。再次,查询正在工作。谢谢! – TARKUS