【问题标题】:mysql merge query in one output with different fieldsmysql 在具有不同字段的输出中合并查询
【发布时间】:2016-09-30 12:58:53
【问题描述】:

我有四个 db 表,

tableA、tableB、tableC、tableD

我正在列出带有连接的记录。这些都工作正常。 我的查询如下。

Select DISTINCT A.*, B.loginname, B.email, C.full_name, C.address1, C.state, C.city, D.*
FROM ( 
tableA AS A 
INNER JOIN tableB AS B ON B.user_id = A.id
INNER JOIN tableC AS C ON C.user_id = A.id 
INNER JOIN tableD AS D ON D.user_id = A.id 
) WHERE A.id = '269' ORDER BY A.created_date DESC

现在,问题是我创建了另外四个具有几乎相同细节的表,但有不同的字段和列。所以我不能使用 UNION

tableE、tableF、tableG、tableH

我想合并输出以显示。并且输出应该是 ORDER BY A.created_date OR ORDER BY E.created_date

高级感谢...

【问题讨论】:

  • 那么问题出在哪里?也加入这些表。
  • 嗨 Ankit,tableA-D 和 table-E-H 之间没有关系
  • 能否分享一下新建表的结构。
  • 您应该提供样本数据和期望结果的示例。
  • 如果你在tableA-D和tableE-H之间有关系而不是使用JOIN,否则你将如何加入它们? (就像把糖果和大象一起吃,唯一的方法 - 随机)

标签: php mysql


【解决方案1】:

您可以通过声明名称别名在具有不同名称列的两个表之间使用UNION ALL(或UNION,如果您想删除重复项)。

       SELECT 'first' AS source, a,b,c,d
         FROM first
     UNION ALL
       SELECT 'second' AS source, q AS a, r AS b, s AS c, t AS d
         FROM second

这将产生一个结果集(虚拟表),其中包含名为 source、a、b、c、d 的列。

【讨论】:

  • 您好,感谢您的回答。我没有得到你的例子。你能把我上面的查询说清楚吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-11
  • 2017-11-04
  • 1970-01-01
  • 2020-03-07
  • 1970-01-01
相关资源
最近更新 更多