2014-02-25 238 views
-1
CREATE TABLE supportContacts 
    (
    id integer primary key, 
    type varchar(20), 
    details varchar(30) 
    ); 

INSERT INTO supportContacts 
(id, type, details) 
VALUES 
(1, 'Email', '[email protected]'); 

INSERT INTO supportContacts 
(id, type, details) 
VALUES 
(2, 'Twitter', '@sqlfiddle'); 


CREATE TABLE supportContacts2 
    (
    type varchar(20), 
    details varchar(30) 
    ); 

INSERT INTO supportContacts2 
(type, details) 
VALUES 
('Email', '[email protected]'); 

以上是兩個表,我想從supportContacts獲得種類和類型的前都想*如果在supportContacts2存在。Sqlite查詢幫助需要?

有什麼建議嗎?

這可能是最小的例子,我可以拿,其實我的工作具有功能這樣一個大的查詢。

這裏的鏈接: https://stackoverflow.com/questions/21657367/android-why-sqlite-union-behaves-abruptly

回答

1

如果你需要的supportContacts所有的結果,你可以使用一個LeftJoin然後CASE WHEN ... THEN ...
這將是這個樣子(s是你supportContacts和S2爲supportContacts2

SELECT s.id, s.details, CASE 
    WHEN s2.type IS NULL THEN '' 
    WHEN s2.type = '' THEN '' 
    ELSE '*' || s2.type 
    END AS type2 
FROM supportContacts AS s LEFT JOIN supportContacts2 AS s2 ON s.type=s2.type 

沒有測試過,可能有語法錯誤,但這是您可以管理它的方式。

+0

這是行不通的。它從不認爲它是空的。 – Sunny

+0

是's2.type'空?你可以通過運行正常的連接來檢查,而不用'CASE WHEN'語句。我更新了我的答案以包含完整的查詢 –