【问题标题】:Output distinct value of JOINS from Stored-procedure从存储过程中输出 JOINS 的不同值
【发布时间】:2016-02-03 12:40:54
【问题描述】:

使用 StackOverflow 中的 SQL JOIN 示例,What is the difference between "INNER JOIN" and "OUTER JOIN"?

想知道这是否是从存储过程返回的,如何从下面的示例中返回不同的值名称和电话号码。即使我创建了一个 XML 字符串,即使那样我也无法选择 DISTINCT 值。有什么帮助吗?

select name, phone, selling 
from people join property 
on people.pid = property.pid;

+-----------+--------------+----------------------+
| name      | phone        | selling              |
+-----------+--------------+----------------------+
| Mr Brown  | 01225 708225 | Old House Farm       |
| Mr Pullen | 01380 724040 | The Willows          |
| Mr Pullen | 01380 724040 | Tall Trees           |
| Mr Pullen | 01380 724040 | The Melksham Florist |
+-----------+--------------+----------------------+

【问题讨论】:

  • 很抱歉我不能很好地理解你的问题。您是要从该查询返回不同的值还是什么?
  • 这是不同的值,取决于你想要什么
  • 类似select name, phone, MAX(selling) selling from people join property on people.pid = property.pid GROUP BY name, phone?如果名称/电话有很多,则只是销售列表中的“随机”值#?
  • @Tech Bangalore 当您发布“如何在 SQL 中执行”问题时,最好指定您的输入和预期输出。这样,即使您的措辞难以理解,用户也能很好地了解您想要实现的目标。
  • 嗯,姓名、电话和销售的组合是不同的,所以将返回4行,现在如果您只需要姓名和电话不同,那么下面给出解决方案。 :)

标签: mysql sql join stored-procedures distinct


【解决方案1】:

其实有点不清楚

但是如果你做类似的事情 Select distinct name,phone from people join property on people.pid = property.pid;

你会拥有 Mr Brown | 01225 708225 | | Mr Pullen | 01380 724040

【讨论】:

  • 你刚刚复制了我的答案
  • 我们只是在同一时间发帖;)
  • 感谢@Gordon Linoff 格式化表格。重申我的问题,我希望所有与 LEFT JOIN 匹配的行,但每一列都有不同的值,因为从上表中,Pullen 先生和他的手机只出现一次,因为它们对于 3 条记录是相同的。我拥有的 SP 有一些复杂的 JOINS,我需要它为每列返回具有不同值的输出。如果输出作为 XML 字符串返回,我可以。这可以实现吗?
猜你喜欢
  • 1970-01-01
  • 2019-09-16
  • 2020-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多