[英]mysql select primary record and multiple secondary records as sorted data set
[英]Select correct MySQL record with multiple records
我很難找到正確的MySQL語句。
記錄就像
id leadid fieldnumber value
1 1 100 AAA
2 1 101 yes
3 1 102 email1
4 2 100 AAA
5 2 101 no
6 2 102 email2
7 3 100 BBB
8 3 101 yes
9 3 102 email3
10 4 100 AAA
11 4 101 yes
12 4 102 email4
現在,我想從每個唯一的leadid中收集fieldnumber = 102的記錄中的value列,其中具有相同leadid的對應記錄滿足:
(fieldnumber = 100 AND value = "AAA") AND
(fieldnumber = 101 AND value = "yes")
在此示例中,結果為:email1,email4
我已經有了第一個選擇語句的結果( fieldnumber = 100 AND value = "AAA"
),但是當我添加第二個選擇語句( fieldnumber = 100 AND value = "AAA"
fieldnumber = 101 AND value = "yes"
)時,結果始終為零記錄。
我認為這是愚蠢的事情,但是我無法弄清楚或找到正確的聲明來做到這一點。
這里的關鍵是要認識到您正在同時使用同一張表中的三個記錄。 您必須將表與自身連接兩次,這就是所謂的self-joins 。
您需要類似:
SELECT a3.value
FROM Anonymous_Table AS a1
JOIN Anonymous_Table AS a2 ON a1.leadid = a2.leadid
JOIN Anonymous_Table AS a3 ON a1.leadid = a3.leadid
WHERE (a1.fieldnumber = 100 AND a1.value = "AAA")
AND (a2.fieldnumber = 101 AND a2.value = "yes")
AND (a3.fieldnumber = 102)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.