Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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 从多个表中获取结果_Mysql_Sql_Database - Fatal编程技术网

Mysql 从多个表中获取结果

Mysql 从多个表中获取结果,mysql,sql,database,Mysql,Sql,Database,我有一张这样的桌子- id | bookId ------------ 1 3 2 2 3 1 这本书呢- 当我这样做的时候,他们有没有办法让我在bookId下获得book列 从id为“1”的订单中选择* 所以这个结果是- id | bookId ------------ 1 bookC <------- bookC instead of 3 您需要将ord

我有一张这样的桌子-

id  | bookId 
------------
1      3              
2      2               
3      1  
这本书呢-

当我这样做的时候,他们有没有办法让我在bookId下获得book列

从id为“1”的订单中选择*

所以这个结果是-

id  | bookId 
------------
1      bookC         <------- bookC instead of 3  
您需要将orders表中bookid列上的表添加到books表中的bookid列:

您需要将orders表中bookid列上的表添加到books表中的bookid列:

在进行连接之后,要获取其他名称下的列,只需说您希望获得b.book作为bookId

未经测试,DBMS可能会在执行联接后抱怨列名的相似性

,要以不同的名称获取列,您只需说您想获取b.book作为bookId


未经测试,DBMS可能会抱怨列名的相似性。您的问题有两个部分。首先,根据多个表之间的某种关系,您需要执行联接以从多个表中获取信息。在本例中,该关系由shared bookId列定义

查看一些参考资料以帮助解释联接的作用。其他答案已经为您提供了一些代码示例,对于基本教程,始终有

第二部分是希望返回books.book中的信息,但不希望将该列称为book以外的内容。所以您必须使用别名,使用AS关键字很容易做到这一点,这也经常用于JOIN。但是,用另一列orders.bookId的现有名称来别名一列books.book可能不是一个好主意。现有bookId列包含整数,而不是字符串。从长远来看,如果您选择更具体的别名,就不会那么混乱

要使用列别名,必须在SELECT语句中特别引用要作为别名的列。例如:在此处选择books FROM books作为您的_别名

下面是一个简单的方法示例,可以实现我认为您想要的:

SELECT orders.id, books.book AS your_alias_here
FROM  orders INNER JOIN books USING(bookId)

由于如下books.book所示,别名应用于books表中的book字段。

您的问题分为两部分。首先,根据多个表之间的某种关系,您需要执行联接以从多个表中获取信息。在本例中,该关系由shared bookId列定义

查看一些参考资料以帮助解释联接的作用。其他答案已经为您提供了一些代码示例,对于基本教程,始终有

第二部分是希望返回books.book中的信息,但不希望将该列称为book以外的内容。所以您必须使用别名,使用AS关键字很容易做到这一点,这也经常用于JOIN。但是,用另一列orders.bookId的现有名称来别名一列books.book可能不是一个好主意。现有bookId列包含整数,而不是字符串。从长远来看,如果您选择更具体的别名,就不会那么混乱

要使用列别名,必须在SELECT语句中特别引用要作为别名的列。例如:在此处选择books FROM books作为您的_别名

下面是一个简单的方法示例,可以实现我认为您想要的:

SELECT orders.id, books.book AS your_alias_here
FROM  orders INNER JOIN books USING(bookId)
由于如下books.book所示,别名将应用于books表中的book字段

SELECT o.id, b.book as bookId
FROM orders o
INNER JOIN books b
    ON o.bookId = b.id
WHERE o.id = 1
SELECT orders.id, books.book AS your_alias_here
FROM  orders INNER JOIN books USING(bookId)