1
我想让我的头部缠绕连接。 我尝试了许多连接但没有成功。根据第三个主表查询2个表格
考虑以下表:
Allsongs
+--------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+--------------+------+-----+---------+-------+
| ID | int(11) | NO | PRI | NULL | |
| Artist | varchar(100) | YES | | NULL | |
| Title | varchar(100) | YES | | NULL | |
+--------+--------------+------+-----+---------+-------+
几个不同的艺术家表:即猫王,披头士等
+--------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------+------+-----+---------+-------+
| ID | int(11) | NO | PRI | NULL | |
| Songid | int(11) | YES | | NULL | |
+--------+---------+------+-----+---------+-------+
在艺术家表中的Songid场是相同的allsongs .id字段
我想创建一个查询th在将加入以下查询到一个查询
select s.title from allsongs s
join beatles b ON s.id = b.songid;
select s.title from allsongs s
join elvis e ON s.id = e.songid;
我想这可能工作:
select s.title from allsongs s
join beatles b ON s.id = b.songid
join elvis e ON s.id = e.songid;
但它提供了:空集。
如果我使用LEFT OUTER JOIN它做什么,我想只要我限制我希望我是不够清晰的行数手动
。任何帮助,将不胜感激。
谢谢
优秀。这工作除了一个问题。结果是其中一个标题是两个艺术家,因此它只返回其中的一个。有没有办法解决这个问题呢,还是仅仅是由于表结构? – Pete
将其更改为“UNION ALL”而不是工会。这将显示重复的行。 – Ilion