2015-03-10 3 views
-1

У меня есть 3 таблицы в моей базе данных, в которых team1 и team2 указаны в Matches Таблица содержит team_id в TeamNames Таблица.Можно ли это сделать в одном запросе?

также group в таблице Matches равна group_idGroupNames в таблице

Matches Таблица

----------------------------------- 
| team1 | team2 | group | count | 
| 3 | 5 | 1  | 1 | 
| 1 | 2 | 3  | 0 | 
----------------------------------- 

GroupNames Таблица

----------------------- 
| group_id | name | 
|  1 | Finals | 
|  3 | Semi-Final | 
----------------------- 

TeamName Таблица

----------------------- 
| team_id | name | 
|  5 | Flowers | 
|  2 | Rainbow | 
----------------------- 

Что мне нужно, чтобы получить это:

SELECT team1 , team1_name , team2 , team2_name , group , group_name WHERE count=1

Я попытался объединения таблиц, но каждый из TEAM1 и team2 должна быть связана с уникальным идентификатором в TeamName таблице Я потерпел неудачу, получив название группы, было легко, но я не смог получить все вышеперечисленное в одном запросе.

Вопросы:

  1. Возможно ли это в одном запросе?

  2. Можно ли это сделать, используя CodeIgniter "Active Record Class"?

+0

Причины downvote? – Vladimir

ответ

1

Ответ на q1: да
Ответ на q2: да

Надеется, что это может помочь вам

$this->db->from('Matches m'); 
    $this->db->select('m.team1,m.team2,m.group,m.count,tn1.name team1_name,tn2.name team2_name,gn.name group_name'); 
    $this->db->join('TeamName tn1','tn1.team_id = m.team1'); 
    $this->db->join('TeamName tn2','tn2.team_id = m.team2'); 
    $this->db->join('GroupNames gn','gn.group_id = m.group'); 
    $this->db->where('m.count',1); 
    $results=$this->db->get()->result(); 
+0

Удивительный, спасибо – Vladimir

1

Да. с INNER JOIN.

Ниже приведен пример объединения трех таблиц, если вы хотите, чтобы вы могли объединить больше.

SELECT * FROM matches ma INNER JOIN groups gr ON ma.groupid = gr.groupid INNER JOIN teams te ON ma.teamid = te.teamid WHERE ma.count = 1 

Удачи вам! Martin

+0

Спасибо Мартин – Vladimir

Смежные вопросы