Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL如何作为结果连接两个不同的表列_Mysql_Sql - Fatal编程技术网

Mysql SQL如何作为结果连接两个不同的表列

Mysql SQL如何作为结果连接两个不同的表列,mysql,sql,Mysql,Sql,我有两张桌子: 表1: --------------------------- |id_column1 | name_column | --------------------------- | 1 | my_name1 | | 2 | my_name2 | --------------------------- 表2: -------------------------------------- |id_column2 | surname_colu

我有两张桌子:

表1:

---------------------------
|id_column1 | name_column |
---------------------------
|        1  | my_name1    |
|        2  | my_name2    |
---------------------------
表2:

--------------------------------------
|id_column2 | surname_column | fk_id1|
--------------------------------------
|      111  | my_surname1    | 1     |
|      222  | my_surname2    | 2     |
--------------------------------------
fk_id1 is foreign key referenced to table1.id_column1

SELECT * FROM table1 WHERE fk_id1=1;

--------------------------------------
|id_column2 | surname_column | fk_id1|
--------------------------------------
|      111  | my_surname1    | 1     |
我如何才能得到这样的结果呢?是否可以连接两个表列作为结果:

------------------------------------------------
|id_column2 | surname_column | fk_id1| name    |
------------------------------------------------
|      111  | my_surname1    | 1     |my_name1 |
如下所示:

SELECT * FROM table2 WHERE fk_id1=1 AND SELECT name FROM table1 WHERE id_column1=1;

你是说像这样的

SELECT t2.*, t1.name_column 
FROM table2 t2 
     INNER JOIN table1 t1 on t2.fk_id1 = id_column1 
WHERE t1.id_column1 = 1

这是一个测试样本。

你的意思是这样的

SELECT t2.*, t1.name_column 
FROM table2 t2 
     INNER JOIN table1 t1 on t2.fk_id1 = id_column1 
WHERE t1.id_column1 = 1

这是一个测试示例。

这很简单。可以使用内部连接完成

SELECT id_column2,surname_column,fk_id1,name_column as name FROM table1 Inner Join table2 on table1.id_column1=table2.fk_id1 where table1.id_column1=1;

如果希望结果采用以下格式:

------------------------------------------------
|id_column2 | surname_column | fk_id1| name    |
------------------------------------------------
|      111  | my_surname1    | 1     |my_name1 |

这很简单。可以使用内部连接来完成

SELECT id_column2,surname_column,fk_id1,name_column as name FROM table1 Inner Join table2 on table1.id_column1=table2.fk_id1 where table1.id_column1=1;

如果希望结果采用以下格式:

------------------------------------------------
|id_column2 | surname_column | fk_id1| name    |
------------------------------------------------
|      111  | my_surname1    | 1     |my_name1 |

t2和t1代表什么?他们是表1和表2的别名吗?@torayeff他们就是这样@XaviLópez示例不包含任何外键变量。这看起来类似于sqljoins@PSivachandranOP声明存在FK,但没有在表1中指定主键或唯一约束。我用PK/FK更新了小提琴。t2和t1代表什么?他们是表1和表2的别名吗?@torayeff他们就是这样@XaviLópez示例不包含任何外键变量。这看起来类似于sqljoins@PSivachandranOP声明存在FK,但没有在表1中指定主键或唯一约束。我现在已经用PK/FK.+1更新了小提琴。它有语法问题。@XaviLópez,是的,我看到了,我改变了它。快速输入:+1。它有语法问题。@XaviLópez,是的,我看到了,我改变了它。快速键入: