一个外键对应多个不同的表的提问。 对于楼主的可能1:使用一个“type”,值为0、1,0表示来自Customer,1表示来自Admin,连接条件还是一样,可以在where条件加上: and Comment.type=0 (根据你自己需要取哪个)对于楼主的可能2:可以给默认值呀,比如:数值型就可以默认为零,字符串类型可以默认为空 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 方案1语句 : select * from comment left join client on client.id = comment.commenter_id and comment.commenter_table = 'client' left join admin on admin.id = comment.commenter_id and comment.commenter_table = 'admin';你是指这样吗?这2个方案是否算是最佳方案呢? 方案1比较利于扩展,比方案2好,现在就两种身份,如果有十种身份,方案2就得有十个相应字段。你可以尝试用union all将两种类型分开查询,减少无用的联表查询。最佳方案就要看你的具体需求了,你的方案1比较适用于大多数情况。 2.ID | message | user_id | rolerole --> (admin, customer) . mysql的数据库数据丢失的诡异问题 请问唯一约束怎那么应用到两个字段的组合之上 MySQL子查询问题 求一套MySQL的视频教程 这样的视图如何建立? 急!在线等待中。。。 急啊,日期问题 除了MYSQL以外还有其他免费的数据库吗? MySQL procedure cursor 如何遍历完 怎么在没有上网的情况下,在RedHatLinux7.1中安装PHP+MySQL+AP....,以学习并达到好的效果? 怎么做数据库 mysql 字段合并 求教一个group by的组内排序的问题
select * from comment left join client on client.id = comment.commenter_id and comment.commenter_table = 'client'
left join admin on admin.id = comment.commenter_id and comment.commenter_table = 'admin';
你是指这样吗?这2个方案是否算是最佳方案呢?
你可以尝试用union all将两种类型分开查询,减少无用的联表查询。
最佳方案就要看你的具体需求了,你的方案1比较适用于大多数情况。