2015-03-20 3 views
-1

У меня есть 3 таблицы:Как SQL внутреннего соединения следующих таблиц

-------- 
| test | 
-------- 
| id | 
-------- 

----------------------- 
| testconnection  | 
----------------------- 
| testid | pharmacyid | 
----------------------- 

----------------------------------- 
| testcontent      | 
----------------------------------- 
| id | testID | title | shortened | 
----------------------------------- 

и мне нужно, чтобы связать testcontent'stitle и shortened с testconnection так, что поле pharmacyid связанно с моей текущей петлей для аптек.

Вот как это выглядит сейчас:

$sql = mysql_query("SELECT * FROM pharmacies"); 
while($pharmacy = mysql_fetch_array($sql)) { 

    and here i'd like to access testcontent's title and shortened for this particular pharmacy 

} 
+0

Используете ли вы MS SQL Server или MySQL? – jarlh

+0

@jarlh Я использую MySQL – Xeen

ответ

0

Должно быть что-то вроде этого:

SELECT cont.title, cont.shortened 
FROM testcontent cont 
JOIN testconnection conn 
ON cont.testId = conn.testId 

ИЛИ

SELECT *, cont.title, cont.shortened 
FROM pharmacies p 
JOIN testconnection conn 
ON conn.pharmacyid = p.Id 
JOIN testcontent cont 
ON cont.testId = conn.testId 
0

Попробуй

SELECT pharmacies.*, 
(select title from testcontent where testcontent.testID = testconnection.testid limit 1) as title, 
(select shortened from testcontent where testcontent.testID = testconnection.testid limit 1) as shortened 
FROM pharmacies 
left join testconnection on testconnection.pharmacyid = pharmacies.id 
order by pharmacies.id 

Надеюсь, он будет работать.

+0

Спасибо за попытку, но это не возвращает никаких результатов вообще – Xeen

+0

Я обновил запрос. попробуйте –

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