簡體   English   中英

嵌套查詢語句的MySQL查詢

[英]MySql query for nested select statement

我有一張這樣的桌子:

id   method  callid
-------------------------
1    INVITE  pW.wKkwjxt
2    BYE     pW.wKkwjxt
3    INVITE  YcIEWypRd
4    BYE     YcIEWypRd
5    INVITE  .--.jr1oji1ddt
6    BYE     .--.jr1oji1ddt
7    INVITE  rM7D3IhQR
8    INVITE  kUc0YNjQy
9    INVITE  S07wSM3G
10   BYE     rM7D3IhQR

在此表的方法列中,具有2個方法的INVITEBYE具有相同的callid。 我需要像CallId的查詢其INVITE並沒有BYE用相同的呼叫ID

像這樣的輸出:

id  method  callid
---------------------
8   INVITE  kUc0YNjQy
9   INVITE  S07wSM3G 

我嘗試使用以下查詢,但未獲得正確的輸出。

SELECT `ac1`.`method`,`ac2`.`method`,`ac1`.`callid`,`ac2`.`callid`,`ac1`.`id`,`ac2`.`id` 
FROM `acc` `ac1`
join `acc` `ac2` ON `ac1`.`callid` = `ac2`.`callid` and `ac2`.`method` != 'BYE'

任何人都可以幫助我。

您可以在callid上進行左連接,如果沒有匹配的callid,則它將為null,因此您可以執行a2.id IS NULL來過濾掉它們。

SELECT `ac1`.`method`,`ac2`.`method`,`ac1`.`callid`,`ac2`.`callid`,`ac1`.`id`,`ac2`.`id` 
FROM acc a1
LEFT JOIN acc a2 ON a2.callid=a1.callid AND a2.method='BYE'
WHERE a1.method='INVITE' 
AND a2.id IS NULL

暫無
暫無

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

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