mysql - 使用 select sql 将两个表显示为一个表

标签 mysql sql join

我有表A

============
| id | val |
=====+======
| 1  | abc |
| 1  | def |
| 2  | ghi |
| 2  | jkl |
============

我有表B

============
| id | val2 |
=====+======
| 1  | rty |
| 1  | vbn |
| 2  | uio |
| 2  | zxc |
============

我想像这样显示两个表格..

===================
| id | val | val2 |
=====+=====+=======
| 1  | abc | rty  |
| 1  | def | vbn  |
| 2  | ghi | uio  |
| 2  | jkl | zxc  |
===================

我的问题是我有冗余..

最佳答案

是的,您遇到问题是因为您没有正确的加入 key 。您可以通过使用变量来创建变量来完成此操作。像这样的东西适用于您提供的数据:

select min(id), max(aval), max(bval)
from ((select id, val as aval, NULL as bval, @rna := @rna + 1 as seqnum
       from tablea a cross join (select @rna := 0)
      ) union all
      (select id, NULL val, @rnb := @rnb + 1 as seqnum
       from tableb b cross join (select @rnb := 0)
      )
     ) ab
group by seqnum;

关于mysql - 使用 select sql 将两个表显示为一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28402200/

相关文章:

php - 如何连接两个表然后选择两个不同的列?

sql - 在 Oracle SQL 上将日期与触发器进行比较

mysql - 选择特定列值的查询

sql - 加入多个条件

php - 使用 PDO 将数据选择到多维数组中

sql - 连接 MYSQL 表并按两个字段排序?

java - 在java中根据出生日期和当前日期计算年龄

PHP SELECT 带条件查询

MYSQL 不使用创建的索引

mysql - 我需要在我的 sql 请求中添加一个选项 "where"