2015-09-07 131 views
0

我有2个表TABLE 1TABLE 2,定义如下:条件查询涉及到两个表

SUB-ID varchar(25) 
CLICKS int(5) 
ACTIONS int(4) 
EARNINGS varchar(10) 
EPC varchar(5) 

我运行下面的查询涉及到两个表:

SELECT t1.CLICKS, t1.ACTIONS, t1.EARNINGS AS CurrentWeekEarnings 
    , t2.EARNINGS AS PastWeekEarnings 
FROM `TABLE 1` AS t1, `TABLE 2` AS t2 
WHERE t1.`SUB-ID` = '" . $_POST['subId'] . "' 
    AND t2.`SUB-ID` = t1.`SUB-ID` 

病例在两个表中都存在给定subId的情况下,查询可以正常工作,但在某些情况下,给定子ID存在于TABLE 1中,但不在TABLE 2中,查询结果为0行。

现在,我是MySQL的新手,我没有MySQL的条件查询经验。

我有一个想法,如果我可以指定一个条件,给定的子ID不存在于TABLE 2,不同的查询只执行检索第3列,即,点击次数,操作和盈利由TABLE 1并将其值设置PastWeekEarnings为0美元。

请告诉我如何实现这一点,即如何在两个查询之间有条件地切换,以及如果subId不在TABLE 2中,则将PastWeekEarnings的值设置为$ 0。

感谢

回答

1

您应该考虑做的,而不是LEFT JOININNER JOIN

SELECT t1.CLICKS, 
t1.ACTIONS, 
t1.EARNINGS AS CurrentWeekEarnings, 
t2.EARNINGS AS PastWeekEarnings 
FROM `TABLE 1` t1 LEFT JOIN `TABLE 2` t2 
ON t2.`SUB-ID` = t1.`SUB-ID` 
WHERE t1.`SUB-ID` = '" . $_POST['subId'] . "'; 
+0

谢谢@Rahul,工作就像一个魅力! :) –