对不起,我有段时间没用sql了。我有三张关于超级英雄的table。我想得到超级英雄的名字,并根据结果从惊奇漫画或华盛顿检索一个电视名字。但是,在检索信息时,查询会同时填充这两个列,而我每个名称应该只有一个条目。我的观点是:
CREATE VIEW `herotelly` AS
SELECT distinct(a.Name), b.Title as showname, c.Title
FROM superheroes a, marveltv b, dctv c
WHERE a.Name = b.Superhero or a.Name = c.Superhero;
然而结果是
"Superman" "Spidey Super Stories" "Adventures of Superman"
"Batman" "Spidey Super Stories" "Batman"
"Catwoman" "Spidey Super Stories" "Batman"
"Robin" "Spidey Super Stories" "Batman"
但是我只想要一个结果,比如在第一行,我只想要超人,第二列是空的,第三列是结果。
非常感谢您的帮助。
尼尔。
3条答案
按热度按时间isr3a4wc1#
谢谢这个方法对我有用。尼尔。
创建视图
herotelly
当选择s.name,t.title from superheros s join(选择superhero,title from marveltv union选择superhero,title from dctv)t on s.name=t.superhero时zfycwa2u2#
这个查询应该会给出你想要的。没有样本数据很难确定。。。它使一个
UNION
两个标题表的JOIN
在超级英雄桌上:6ss1mwsb3#
你在两者之间创造一个交叉产品
marveltv
以及dctv
,然后从两者返回标题。使用UNION
两个分开的连接。