我有2個表選擇字段和另一個表匹配,並返回VALES
類別
categories (cid, year_id, category_title)
用戶與
users (uid, year_id, name, rollno, password)
當用戶登錄自己的rollno和密碼我想顯示他的類別 選擇year_id
在 '類別'
我試圖
SELECT * '用戶' 和匹配爲year_id
FROM類別WHERE(選擇year_id =從用戶的$一年)
我有2個表選擇字段和另一個表匹配,並返回VALES
類別
categories (cid, year_id, category_title)
用戶與
users (uid, year_id, name, rollno, password)
當用戶登錄自己的rollno和密碼我想顯示他的類別 選擇year_id
在 '類別'
我試圖
SELECT * '用戶' 和匹配爲year_id
FROM類別WHERE(選擇year_id =從用戶的$一年)
使用一個簡單連接
SELECT c.* FROM categories c
JOIN users u ON(c.year_id =u.year_id)
WHERE u.year_id='$year'
編輯
SELECT c.*,u.year_id user_year FROM categories c
JOIN users u ON(c.year_id =u.year_id)
WHERE u.uid='$user_id'
如果year_id
對於兩者都是相同的,並且您知道從users
表返回的year_id
,則只需在categories
表中使用select中的該值。
SELECT *
FROM `categories`
WHERE `year_id` = '[year_id from users data]'
不需要連接。
UPDATE:
驗證用戶登錄:
SELECT *
FROM `users`
WHERE `rollno` = '[users rollno]'
然後比較從查詢到用戶提供的密碼恢復密碼,如果他們匹配,你知道用戶是有效的,並且可以使用也被返回以獲取類別的year_id
。
這裏還有一個問題是如何從用戶表抓取year_id登錄用戶 – Sushant
@Sushant看到我更新的答案 –
如果'$ user_id'實際上是你基於搜索的值,那麼JOIN會是規定在這裏,這個答案將工作得很好。 – Benjam