求一条 sql 语句

发布于 2022-09-05 01:52:51 字数 201 浏览 27 评论 0

A表中有 toId字段 , toTable 字段 。

toTable 字段存放的是表的名称( 需要将A表 LEFT JOIN toTable字段存放的表名 )

SELECT * FROM A LEFT JOIN (A表中的toTable字段) ON A.toId = (A表中的toTable字段).id

这个sql语句应该怎样写 ? 谢谢了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

池木 2022-09-12 01:52:51

left join只能联接两个表,而你是要将A的不同的行联接不同的表。这种设计很别扭,拼凑出来SQL执行效能也低。不如把你的那些toTable们先整合成一个表或者view:B(toTable, id, data),再来做联接:

with B(toTable, id, data) as (
    select 'table1', id, data from table1
    union all
    select 'table2', id, data from table2
    ...)

select * from A left join B
    on A.toTable=B.toTable and A.toId=B.id
浅黛梨妆こ 2022-09-12 01:52:51

你这个只能用程序先查出表明,然后拼接sql吧

如日中天 2022-09-12 01:52:51

可以封装成存储过程,参数化调用表名

旧街凉风 2022-09-12 01:52:51
SELECT * FROM [TableName1] A,[TableName2] B where A.told=B.toTable

--大致语法就这样、我不知道我理解正确没有
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文