我有一個數據庫與2表:研究人員和學生。尋找匹配:相同的變量,不同的表
這兩個表都有一個名爲lastname的變量。
我想要做的是在兩個表中查找輸入的姓氏。
當IM輸入命令:
SELECT lastname
FROM researchers
OR students
WHERE lastname = $certain_variable
我會得到error #105
2讓我意識到變量是模棱兩可的。
我該如何解決這個問題?
我有一個數據庫與2表:研究人員和學生。尋找匹配:相同的變量,不同的表
這兩個表都有一個名爲lastname的變量。
我想要做的是在兩個表中查找輸入的姓氏。
當IM輸入命令:
SELECT lastname
FROM researchers
OR students
WHERE lastname = $certain_variable
我會得到error #105
2讓我意識到變量是模棱兩可的。
我該如何解決這個問題?
編輯:刪除LEFT JOIN
答案澄清後的問題。
你可以使用複合查詢:
SELECT all_lastnames.lastname FROM (
SELECT lastname FROM students
UNION
SELECT lastname FROM researchers
) all_lastnames
WHERE lastname = $certain_variable
基本上是什麼做的是兩個表中選擇姓成的別名是all_lastnames
1「臨時表」(由UNION
創建)。然後,您可以在all_lastnames
表
您可以使用TABLENAME.LastName,而不是這會消除歧義。
運行SELECT
如果你有共同姓氏的之間的兩個表使用
SELECT a.lastname FROM
researches AS a
LEFT JOIN students AS b ON (a.lastname=b.lastname)
WHERE a.lastname = '$var'
你需要告訴查詢名字你想要的東西(從研究或學生) 是爲什麼你需要指定tablename或tablealias.field。
如果你的表沒有一個共同的姓氏值,並且要 搜索他們看到你發現姓氏可以使用UNION:
SELECT 'found researches', lastname FROM researches WHERE lastname = '$var'
UNION
SELECT 'found student', lastname FROM students WHERE lastname = '$var'
確保你逃避是$ var。
這兩個表或任一表? – tmsimont
該變量將是一個用戶名,我想選擇姓氏。這裏的問題是用戶名和姓氏存儲在2個表中。 – Dylan