嘿伙计们,我真的很难理解基本的MySQL连接。 基本上我有两个表,其中有一个客户名和地址ID,另一个表带有实际地址。
我希望它显示客户名称和实际地址,而不是仅显示客户名称和地址ID。
我的基本选择语句是这样的:
SELECT firstName, addressId FROM Customer
它将显示如下内容:
firstName addressId
---------------------
Bob 56
而不是我想将addressId加入另一个表中的实际地址
像这样:
firstName address
----------------------------------
Bob 45 Somewhere street
有没有人可以告诉我实现这个目标的最佳途径?
也有人可以推荐一个很好的连接教程吗?
答案 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
示例输出:
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
答案 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