簡體   English   中英

MYSQL在同一個表中連接操作

[英]MYSQL Joining operations in the same table

SELECT DISTINCT mp.Group_Name FROM measurement_test mt, measurement_point mp, measurement_values mv 
                        WHERE mt.Test_ID = mv.Test_ID AND mv.Point_ID = mp.Point_ID AND mt.ID_Number = 'WR20120603_05' 


SELECT DISTINCT mp.Group_Name FROM measurement_test mt, measurement_point mp, measurement_values mv 
                        WHERE mt.Test_ID = mv.Test_ID AND mv.Point_ID = mp.Point_ID AND mt.ID_Number = 'WR20120603_04'

以上是我在網頁中使用的兩個查詢。 實際上我只想獲得兩個查詢之間的結果的常見group_name值,是否有任何其他可能的方法來實現此特定方案,或者只是簡單地處理上述兩個查詢?

SELECT mp.Group_Name 
FROM measurement_test mt
inner join measurement_values mv on mt.Test_ID = mv.Test_ID
inner join measurement_point mp on mv.Point_ID = mp.Point_ID
WHERE mt.ID_Number in ('WR20120603_04', 'WR20120603_05')
group by mp.Group_Name
having count(distinct mt.ID_Number) = 2

您可以使用IN子句簡化它。

SELECT DISTINCT mp.Group_Name 
FROM    measurement_test mt
            INNER JOIN measurement_point mp
                ON mt.Test_ID = mp.Test_ID
            INNER JOIN measurement_values mv 
                ON mv.Point_ID = mp.Point_ID
WHERE   mt.ID_Number IN ('WR20120603_05', 'WR20120603_04')
GROUP BY    mp.Group_Name 
HAVING      COUNT(mp.Group_Name) = 2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM