簡體   English   中英

如何從兩個表中選擇不同的記錄,組合成一列,並使用SQLite消除另一個表中存在的所有記錄?

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

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