sql – 具有内部Join的重复列

前端之家收集整理的这篇文章主要介绍了sql – 具有内部Join的重复列前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
SELECT 
    dealing_record.*,shares.*,transaction_type.*
FROM 
    shares 
    INNER JOIN shares ON shares.share_ID = dealing_record.share_id
    INNER JOIN transaction_type ON transaction_type.transaction_type_id = dealing_record.transaction_type_id;

上面的sql代码产生了所需的输出,但有几个重复的列.此外,列标题显示不完整.当我改变了

linesize 100

标题显示但数据显示重叠

我已经检查了类似的问题,但我似乎没有得到如何解决这个问题.

解决方法

你有重复的列,因为,你要向sql引擎询问他们将显示相同数据的列(使用SELECT dealing_record.*等等),然后重复.

例如,transaction_type.transaction_type_id列和dealing_record.transaction_type_id列将具有匹配的行(否则您将看不到任何带有INNER JOIN的内容),您将看到这些重复项.

如果你想避免这个问题,或者至少要减少结果中重复的风险,那就改善你的查询,只使用你真正需要的列,就像@ConradFrix已经说过的那样.一个例子是这样的:

SELECT 
    dealing_record.Name,shares.ID,shares.Name,transaction_type.Name,transaction_type.ID
FROM 
    shares 
    INNER JOIN shares ON shares.share_ID = dealing_record.share_id
    INNER JOIN transaction_type ON transaction_type.transaction_type_id = dealing_record.transaction_type_id;

猜你在找的MsSQL相关文章