MySQL了解基本联接

时间:2013-01-03 12:11:36

标签: mysql sql

嘿伙计们,我真的很难理解基本的MySQL连接。 基本上我有两个表,其中有一个客户名和地址ID,另一个表带有实际地址。

我希望它显示客户名称和实际地址,而不是仅显示客户名称和地址ID。

我的基本选择语句是这样的:

SELECT firstName, addressId FROM Customer

它将显示如下内容:

firstName   addressId
---------------------
Bob         56

而不是我想将addressId加入另一个表中的实际地址

像这样:

firstName    address
----------------------------------
Bob          45 Somewhere street

有没有人可以告诉我实现这个目标的最佳途径?

也有人可以推荐一个很好的连接教程吗?

6 个答案:

答案 0 :(得分:4)

SELECT  a.name, b.address
FROM    Customer a INNER JOIN AddressList b on a.addressID = b.addressID

要了解有关联接的更多信息,请参阅以下文章

答案 1 :(得分:3)

你的病情是内联, 这是最简单,最容易理解的Join,也是最常见的。此查询将返回左表(Customer)中右表(地址)中具有匹配记录的所有记录。此Join的内容如下:

 SELECT firstName, address FROM Customer 
 INNER JOIN address ON Customer.addressId=address.addressId

SQL_LIVE_DEMO

示例输出:

FIRSTNAME       ADDRESS
  Bob       45 Somewhere street

答案 2 :(得分:0)

在名称和地址表中放入相同的“addressid”,然后将两者加入:

select name, address from customer join addresses 
on customer.addressid = addresses.addressid;

答案 3 :(得分:0)

假设两个表都有地址,可以使用

SELECT firstname, address, from table1 JOIN table2 
ON table1.addressid = table2.addressid

答案 4 :(得分:0)

这将是:

SELECT firstName, address FROM Address As A 
INNER JOIN Customer as C ON C.addressId=A.addressId

Visual Representation of JOINS

答案 5 :(得分:0)

假设您有以下表格:

Customer(ID, FName, LName, AddressID)
Address(AddressID, Streeet, HNUmber, City)

这将显示客户地址而不是AddressID:

SELECT c.ID, c.Fname, c.LName, a.Street, a.HNumber, a.City
FROM Customer c, Address a
WHERE
  c.AddressID = a.AddressID