2014-02-26 21 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