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)