2013-09-04 2 views
3

У меня это две таблицы:MySQL присоединиться соответствие две таблицы с их идентификатором

одну таблицу: Пользователь

id name home_location job_location 
1 Jack 40    5 
2 Rocky 50    4 
3 Tom 24    9 

Таблица Два: Площадь

area_id area_name 
5   Bukit Batok 
4   Bukit Panjang 
9   Boon Lay 
40   Pioneer 
50   Choa Chu Kang 
24   Clementi 

Я хочу привести например:

ID name home_location job_location 
1  Jack Pioneer   Bukit Batok 
2  Rocky Choa Chu Kang Bukit Panjang 
3  Tom  Clementi  Boon Lay 

Как я плохо разбираюсь в sql-запросе, так как писать запрос на выбор. Любые идеи или предложения? Благодарю.

ответ

5

Попробуйте как

SELECT id as ID, 
      name, 
      area_1.area_name as home_location, 
      area_2.area_name as job_location, 
      area_1.area_id as home_location_id, 
      area_2.area_id as job_location_id 
FROM user 
INNER JOIN 
     area AS area_1 
      ON area_1.area_id = user.home_location 
INNER JOIN 
     area AS area_2 
      ON area_2.area_id = user.job_location 

И стараются избегать mysql_* заявления из-за всей ext/mysql PHP расширения, который обеспечивает все функции, названные с приставкой mysql_*, является официально устаревшим PHP v5.5.0 и будет удален в будущем.

Есть два других MySQL расширений, которые можно лучше использовать: MySQLi и PDO_MySQL, любой из которых может быть использован вместо ext/mysql.

+1

не используется INNER JOIN? – Adsy2010

+1

Извините @ Adsy2010 Я забыл «INNER» – Gautam3164

+0

Я даже не видел, что этого не хватает. Спасибо еще раз @ Adsy2010. – Gautam3164

0

SQL, заключается в следующем:

select 
    us.name, 
    us.home_location, 
    ar.job_location 
from 
    user us 
     join area ar 
      on us.area_id=ar.id 

но, пожалуйста, примите чтение этого Q&A I wrote for justthis situation.

1
Select U.ID,U.Name,A1.Area_Name as Home_Location, A2.Area_name as Job_Location 
From Users U 
Left Outer Join Area A1 ON U.home_location = A1.Area_ID 
Left Outer Join Area A2 ON U.job_location = A2.Area_ID