3

基本的なMySQL結合を理解するのに苦労しています。

基本的に、2つのテーブルがあります。1つは顧客の名とアドレスIDが含まれ、もう1つは実際のアドレスが含まれています。

顧客名と住所IDを表示するだけでなく、顧客名と実際の住所を表示したいと思います。

私の基本的なselectステートメントは次のようなものです。

SELECT firstName, addressId FROM Customer

次のように表示されます。

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

addressIdを別のテーブルの実際のアドレスと結合したいのではなく

このような:

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

これを達成するための最良の方法を教えてくれる人はいますか?

また、誰かが結合のための良いチュートリアルをお勧めできますか?

4

6 に答える 6

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

結合の詳細については、以下の記事を参照してください。

于 2013-01-03T12:14:13.057 に答える
3

あなたの条件は内部結合です。これは最も単純で最も理解されている結合であり、最も一般的です。このクエリは、右側のテーブル (住所) に一致するレコードがある左側のテーブル (顧客) のすべてのレコードを返します。この Join は次のように記述されます。

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

SQL_LIVE_DEMO

サンプル出力:

FIRSTNAME       ADDRESS
  Bob       45 Somewhere street
于 2013-01-03T12:13:46.830 に答える
0

名前テーブルとアドレス テーブルの両方に同じ「アドレス ID」を入力し、次のように 2 つを結合します。

select name, address from customer join addresses 
on customer.addressid = addresses.addressid;
于 2013-01-03T12:14:04.180 に答える
0

両方のテーブルにアドレスIDがあると仮定すると、次を使用できます

SELECT firstname, address, from table1 JOIN table2 
ON table1.addressid = table2.addressid
于 2013-01-03T12:15:29.670 に答える
0

それはそのようになります:

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

JOINS の視覚的表現

于 2013-01-03T12:16:19.720 に答える
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
于 2013-01-03T12:16:32.080 に答える