2014-02-25 179 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'语句。我更新了我的答案以包含完整的查询 –