![](/img/trans.png)
[英]SQLite - How to select records from one table that are not in another table
[英]How to select distinct records from two tables, combine into one column, and eliminate all records that exist in another table using SQLite?
這是我現有的查詢,它成功地從兩個表中選擇不同的記錄,並將它們組合成一列:
SELECT index_text AS unique_text FROM words
UNION
SELECT c1index_text FROM words_content
ORDER BY unique_text
現在我想要消除所有記錄在WHERE body NOT IN (SELECT body FROM sms)
(或NOT EXISTS
,無論什么工作都沒問題)。 問題在於,無論我嘗試什么,每當我嘗試使用括號時,我都會遇到語法錯誤,或者它無法識別sms.body
(即使我的每個列都在其父表之前)。 我認為SQLite的一些限制可能會使它變得比它需要的更難,但必須有一個解決方法。 以下是我嘗試過的查詢失敗 (我也試過這些查詢的多種變體無濟於事):
SELECT index_text AS unique_text FROM words
UNION
SELECT c1index_text FROM words_content
WHERE body NOT IN (SELECT body FROM sms)
ORDER BY unique_text
導致錯誤: No such column: body
SELECT words.index_text AS unique_text FROM words
UNION
SELECT words_content.c1index_text FROM words_content
LEFT JOIN sms
ON sms.body=unique_text
ORDER BY unique_text
結果出錯: No such column: unique_text
如何加入別sms.body
並僅顯示sms.body
不存在的sms.body
? 謝謝,
如果在UNION中使用where或join子句,則必須將它們應用於兩個select語句。
SELECT index_text AS unique_text
FROM words
where index_text NOT IN (SELECT body FROM sms)
UNION
SELECT c1index_text
FROM words_content
WHERE c1index_text NOT IN (SELECT body FROM sms)
ORDER BY unique_text
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.