我想实现某些我认为相当容易的事情,但我无法将其包围。即使在“JOIN”表中没有数据时也选择ID
我有两个表中,A和B:
表A是其中所有的数据项都定义。
+----+--------------+
+ ID + other_things +
+----+--------------+
+ 1 + ~~~~~~~~~~~~ +
+ 2 + ~~~~~~~~~~~~ +
+ 3 + ~~~~~~~~~~~~ +
+----+--------------+
在表B中,存储了一些可选属性,但并非所有记录都在此表中。
+----+-------------+-------------+
+ ID + prop_type + prop_value +
+----+-------------+-------------+
+ 1 + prop1 + foo +
+----+-------------+-------------+
+ 1 + prop2 + toto +
+----+-------------+-------------+
+ 3 + prop2 + lorem +
+----+-------------+-------------+
当我查询这些表,使用:
SELECT A.ID, B.prop_value FROM A FULL JOIN B ON A.ID = B.ID WHERE B.prop_type = 'prop2'
我得到
ID prop_value
------------------------ -------------------------------------------------------
1 toto
3 lorem
但我想获得表A中的所有行,即使他们没有'prop2'值,类似
ID prop_value
------------------------ -------------------------------------------------------
1 toto
2
3 lorem
如何调整我的查询以获取后者(我认为它与JOIN关键字有关,但无论我阅读了多少教程,我都无法使其工作......)
非常感谢!
如果您使用'FULL JOIN',则不使用'MySQL'。 –
正确,它是SQLPlus,为了清晰我删除了标签 – Maxime