【发布时间】:2010-03-20 23:37:20
【问题描述】:
如果有人提出并回答了这个问题,请原谅我,我已经搜索并找到了一些看起来相似的,但我对 SQL 太陌生了,无法根据我的需要调整它们。如果我没有使用正确的术语,也请原谅我,我知道当有人提出问题并且他们甚至没有足够的知识来询问他们需要什么时会很烦人。
好吧,我不明白源数据实际上是什么样的,这就是为什么我无法得到我想要的。感谢@goran 推动我将真正的源表发布到此处(我仍然不会发布,因为我懒得对它们进行适当的编辑以便于查看和保护无辜者,但我应该有至少在询问之前将它们打印出来)。下面是新修订的示例表,但我仍然没有弄清楚如何实现将所有内容放在一行中的最终目标。
table_one:
id name total
5 John Doe 20
table_two:
id product_id price
5 51 17
table_three:
id text number
5 Subtotal 17
5 Tax 3
5 Total 20
我正在寻找的是这样的:
id name total product_id price text number text number text number
5 John Doe 20 51 17 Subtotal 17 Tax 3 Total 20
我不再确定以下信息的有效性,但我暂时将其留在这里,希望它不会让该问题的新读者感到困惑。
3 月 22 日>
我正在帮助一位朋友收集一些数据,并且需要执行一个查询,结果每条记录只有一行,但我得到了多行。这是我现在正在查询的示例(简化,希望不会太多):
SELECT * FROM `table_one` AS t1
INNER JOIN `table_two` AS t2 ON t1.id = t2.id
INNER JOIN `table_three` AS t3 ON t1.id = t3.id
WHERE 1
结果是:
id text number
5 Subtotal 17
5 Tax 3
5 Total 20
我需要的是创建一个查询结果更像这样:
id text number text number text number
5 subtotal 17 Tax 3 Total 20
任何帮助/指导将不胜感激。
谢谢!
--杰德
【问题讨论】:
-
您在不同的表格中是否有小计、税收和总计?或者您是否尝试合并每个都有小计、税收、总计的表格?我认为您的示例查询过于简单,查看真实的查询会有所帮助。
-
是的,对不起,我会编辑澄清。
-
您引用的查询,结果和样本数据不匹配。为什么不复制粘贴实际查询和结果?附言如果你真的想要一个有保证的明确答案,你也可以 mysqldump -c -n database table1 table2 table3 > table.sql 然后复制/粘贴相关的 INSERTS 和 CREATE TABLE 语句的相关部分,如果它不是太长的话。
-
@goran:感谢您的坚持和容忍。我将立即复制并粘贴实际的查询和结果。再次感谢,--jed
-
@goran:好的,只是试图获得真正的表格已经向我展示了我的方式的错误。我错误地认为每个表都有一个我想要组合的不同元素,但是一个表有多个我需要组合的行,这就是事情没有按照我预期的方式发展的原因。故事的寓意:在假设结果不正确之前,请确保您了解源数据的样子。我会尽快更新问题并提供更多信息。
标签: sql mysql mysql-error-1052