【问题标题】:how to join two table with where to one column [closed]如何将两个表与一列的位置连接起来[关闭]
【发布时间】:2019-12-05 08:43:39
【问题描述】:

谁能教我如何将两个表加入一列 MySQL 这可能吗?还是不行?

【问题讨论】:

  • 您的问题不清楚..“两表合一”?!? .. 更新您的问题,添加适当的数据样本和预期结果
  • 对不起,错误,但我真的想从两个表中获取数据。这是我的示例代码 SELECT * FROM posts INNER JOIN post_meta ON post_meta.pid=posts.id WHERE (status=1 OR status=4 ) 按日期 DESC 排序,它提供了更多列。我的问题是可以将所有数据放入一列
  • 表格的结构是什么?如果每个表只有一个列 id,那么你需要做一个联合,比如 select id from posts union select id from post_meta
  • 感谢所有支持我的人。我使用“INNER JOIN”解决了这个问题

标签: mysql sql join database-design


【解决方案1】:

如果您需要将结果作为单列,您可以使用concat

SELECT concat(p.id, p.status, p.date, m.pid) 
FROM posts p
INNER JOIN post_meta m ON m.pid=p.id 
WHERE (status=1 OR status=4) 
ORDER BY date DESC 

但是你需要明确的列(你需要的所有)而不是选择 *

或者您可能正在寻找group_concat

SELECT group_concat(p.title)
FROM posts p
INNER JOIN post_meta m ON m.pid=p.id 
WHERE (status=1 OR status=4) 

【讨论】:

  • 是的,我试过但结果ibb.co/ZdRcM0R
  • 答案已更新..查看您的示例似乎您需要 group_concat
  • 感谢所有支持我的人。我使用“INNER JOIN”解决了这个问题
【解决方案2】:

是的。当然,在 SQl(MySql/SqlSvr) 中将表连接在一起是可能的。

(INNER) JOIN:选择两个表中值匹配的记录。

LEFT (OUTER) JOIN:从第一个(最左边的)表中选择与右表记录匹配的记录。

RIGHT (OUTER) JOIN:从第二个(最右边的)表中选择与左表记录匹配的记录。

FULL (OUTER) JOIN:选择与左表或右表记录匹配的所有记录。

所有 INNER 和 OUTER 关键字都是可选的。

让我们阅读更多关于本教程的信息。 https://www.dofactory.com/sql/left-outer-join

【讨论】:

    【解决方案3】:

    似乎是How can I merge the columns from two tables into one output?的重复

    提供有关您希望如何加入以获得完整响应的更多详细信息。有输入和预期输出的例子会更好。

    【讨论】:

      【解决方案4】:

      简单的答案

      Select * From table1 t1 INNER JOIN table2 t2 on t1.col1 = t2.col1;

      您可以使用INNER 获取结果,其中数据应存在于与 col1 对应的两个表上

      您可以使用LEFT 获取结果,其中数据应该存在于对应于 col1 的第一个表上,但不一定存在于第二个表上

      您可以使用RIGHT 来获取数据应该出现在与 col1 对应的第二个表上但不一定出现在第一个表上的结果

      【讨论】:

      • 感谢所有支持我的人。我使用“INNER JOIN”解决了这个问题
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多