0

そのため、複数のテーブルにクエリを実行しようとしています。

これは私がこれまでに持っているものです:

SELECT * FROM patientdetails  
WHERE DATEDIFF( CURRENT_DATE, DOB ) /365 <18 
and Gender='Male'  
AND RAMQ in 
(
   SELECT `RAMQ` 
   FROM `pathology` 
   WHERE `Result`='positive'
)

これは問題なく機能しますが、日付を別のテーブルの日付フィールドと比較する必要があるため、さまざまな解決策を試しました。

解決策 1:

SELECT * FROM patientdetails  
WHERE DATEDIFF( pathology.Date, DOB ) /365 <18 
and Gender='Male'  
AND RAMQ in 
(
   SELECT `RAMQ`  
   FROM `pathology` 
   WHERE `Result`='positive'
)   

解決策 2:

SELECT * FROM patientdetails p, pathology pp  
WHERE DATEDIFF( pp.Date, p.DOB ) /365 <18 
and p.Gender='Male'  
AND p.RAMQ in 
(
   SELECT `RAMQ` 
   FROM `pathology` 
   WHERE `Result`='positive'
)

これらのどれも機能していないようで、非常にイライラします。誰かが私にいくつかのガイダンスを提供できれば、それは大歓迎です。

4

2 に答える 2

1

JOINそれらをこのように:

SELECT d.* 
FROM patientdetails  AS d
INNER JOIN pathology AS p ON d.RAMQ = p.RAMQ
WHERE DATEDIFF(p.Date, d.DOB ) /365 < 18 
  AND d.Gender='Male' 
于 2013-05-17T15:01:07.817 に答える