Select
只有同一張表的兩行在同一個ID下整體滿足條件時才SELECT rows from table
標題有點奇怪,但我不太確定如何正確地表述這個問題。也許這就是為什麼我找不到解決方案…?
我目前正在通過具有以下格式的 SQLite 數據庫進行爬網:
直覺地說,假設目標是找出是否有人在這裡公開了他們的完整登錄資訊。這意味著對於相同的文件名和 ID,有人同時定義了使用者名變數和密碼變數,這很糟糕,我們希望通過查看其餘行並嘗試辨識這是哪個軟體來更仔細地分析.
在 SQL 術語中,我的目標是找到一個 SQL 查詢,它返回文件名 + ID 組合的所有行,如果在此組合下有一行名稱包含“USER”(LIKE ‘%USER%’),並且名稱包含“PASS”的行(LIKE ‘%PASS%’)。
對於同一個例子,這就是我想要的結果:
我怎麼能在 SQLite 兼容的查詢中做到這一點?
- 查找具有的 id+filename
passwords
- 查找具有的 id+filename
usernames
passwordss
與原始表進行內連接,過濾掉那些在and中沒有對應值的行usernames
這些方面的東西:
with passwords as ( select filename, id from files where name like '%PASS%' group by filename, id ), usernames as ( select filename, id from files where name like '%USER%' group by filename, id ) select files.* from files inner join passwords using(filename, id) inner join usernames using(filename, id);