2014-02-26 24 views
-1

我有2个表的MySQL在比较一组中2个表

table A      table B 

pid date1     pid date 2 
a 10-12-2014   a 10-12-2014 
a 11-13-2014   a 11-22-2011 
          a 8-9-2007 
          a 7-6-2006 


b 9-10-2011    b 8-8-2011 
          b 9-5-2004 
          b 8-2-2005 


c 8-8-2011    c 9-10-2001 
          c 8-8-2011 

我想检查特定日期1在日期2特定PID

为前为pid一个的条目date1 10-12-2014退出日期2 10-12-2014

+0

难道你不需要只在pod和日期上进行内部连接吗? – kiks73

回答

2
SELECT a.*, IF(b.pid IS NULL, false, true) entry_in_b FROM taba a 
LEFT JOIN tabb b ON a.pid = b.pid AND a.date1 = b.date2 

或类似的东西。

+0

感谢您的快速响应。 – user3357897

1

该查询将从Table A返回所有行Table B具有匹配piddate2

SELECT A.pid, 
     A.date1 
    FROM [Table A] A 
    INNER JOIN [Table B] B ON B.pid = A.pid AND B.date2 = A.date1 

如果你想返回从A所有行和是否有B匹配行指示:

SELECT A.pid, 
     A.date1, 
     CASE 
      WHEN B.date2 IS NULL THEN 'no match' 
      ELSE 'match' 
     END AS Match 
    FROM [Table A] A 
    LEFT JOIN [Table B] B ON B.pid = A.pid AND B.date2 = A.date1 
+0

感谢您的快速响应。 – user3357897