我想把头缠在JOINS上。 我尝试了很多连接而没有成功。
考虑以下表格:
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字段
相同我正在尝试创建一个将以下查询加入一个查询的查询
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;
但它给出:空集。
如果我使用左外连接,只要我手动限制行数
,它就能完成我想要的操作我希望我足够清楚。任何帮助将不胜感激。
由于
答案 0 :(得分:0)
你可以用联盟做到这一点。两个查询都需要返回具有相同数据类型顺序的相同数量的列。列名来自第一个select语句,以防您之后想要执行订单或之后的任何操作。
db.urColl.update(
{ x: "h" },
{ $push: { arr: { $each: [6,8] } } },
{ multi: true }
);`