2013-10-02 25 views
0

我有2個脊髓癆在我的數據庫:從2個表中選擇的結果基於在3TH表變量

users - userID(primary key), username, password 
courses - id(primary key), name, text 
subscriptions - id(primary key), curso_id, user_id 

就在訂閱表我寫用戶的用戶ID內 - > USER_ID用的標識當然爲他訂閱curso_id所以在subscrption數據庫中的結果是一樣

subscribtions table: 
id user_id curso_id 
1  12   1 
2  5   1 
3  12   2 
4  6   7 

這是用戶表:

users table 
userID username password 
    1  user1 passw1 
    2 
    3 
    4 

,這是課程表:

course table: 
    id course_name descriotion 
    1 course one text 
    2 
    3 

我的問題是如何使一個SQL查詢它首先由$row['id']選擇課程,表示從課程數據庫中的id變量,並基於位於3表後訂閱列出所有訂閱此課程編號的用戶。 ?

和第二個問題是如何列出的訂閱用戶數量由

$row['id'] 

這裏選擇的課程是某種的alghorytm邏輯的,我現在所擁有的

SELECT * FROM users WHERE id=5.courses(select from the database 'courses') AND 5-> SELECT ALL FROM table subscriptions user_id equal to id from table users 
+0

你能告訴我們你嘗試過什麼? – Andrew

+0

問題是我真的不知道如何使不同的tabes之間的關係,然後設置電子規則或選擇我猜這個選項是加入表格,但如何設置選擇規則 –

+0

這是非常基本的東西。我建議查看一個SQL教程。 http://www.w3schools.com/sql/sql_join.asp – Andrew

回答

0

還好我發現的方式,這裏是MySQL查詢:

FROM users 
INNER JOIN subscriptions 
ON users.userID = subscriptions.user_id 
WHERE subscriptions.curso_id = $ids" 
0

不知道如果我理解你想要達到的目標,但是如果你想要一個列表,在每門課程中向每個用戶顯示課程名稱並按課程名稱排序,這應該是成功的。

select t1.*, t2.*, t3.* from users as t1, courses as t2, subscriptions as t3 where t3.user_id = t1.userID and t3.curso_id = t2.id order by t2.id 

不是最好的方式做到這一點,並從性能方面我建議把這個幾個語句連接通常是緩慢的。

+0

我想列出訂閱所選課程的所有用戶,但一次只能列出一門課程。所選的課程由$ row ['id']標識 –

相關問題