项目表
id key code description
------------------------------
1 1 misc miscellaneous
2 1 med medicine
杂项表:
id code description
------------------------
1 misc1 miscellaneous
2 misc1 miscellaneous
药表:
id code description
---------------------------
1 medicine1 medicine
2 medicine1 medicine
我有这个表结构;我的主表是Item
表,我想根据主表中的列值将主表与其他表联接。确定要联接的表的列是code
。如果代码是misc
,则与misc table
联接;如果值是med
,则与medicine table
联接。
我知道表的基本JOIN
,如
SELECT *
FROM item
INNER JOIN miscellaneous ON item.key = miscellaneous.id
但我不知道当存在将指向JOIN
的哪个表的条件时如何连接
4条答案
按热度按时间g0czyy6m1#
你可以使用
left join
,类似于:23c0lvtd2#
您可以尝试使用
LEFT JOIN
,这将是实现此操作最简单的方法。使用
UNION ALL
使用
LEFT JOIN
c8ib6hqw3#
由于Item是您'基' /主表,因此您可以使用LEFT JOIN匹配其它表,以便显示Item表中所有行
您还可以使用ISNULL()函数和一些前提条件来合并Miscellaneous & Medicine表中的列
SqlFiddle演示
oxf4rvwz4#
您可以动态地执行此操作
1.准备测试数据集