簡體   English   中英

選擇具有多個記錄的正確MySQL記錄

[英]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.

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