我有一个包含2个表的数据库:研究人员和学生。
这两个表都有一个名为lastname的变量。
我想要做的是在两个表中查找输入的姓氏。
当我输入命令时:
SELECT lastname
FROM researchers
OR students
WHERE lastname = $certain_variable
我会得到error #105
2让我意识到变量含糊不清。
我该如何解决这个问题?
答案 0 :(得分:0)
您可以使用TABLENAME.LastName,这样可以消除歧义。
答案 1 :(得分:0)
编辑:在澄清问题后删除LEFT JOIN
个答案。
您可以使用复合查询:
SELECT all_lastnames.lastname FROM (
SELECT lastname FROM students
UNION
SELECT lastname FROM researchers
) all_lastnames
WHERE lastname = $certain_variable
基本上这样做是从两个表中选择姓氏到1"临时表" (由UNION
创建),其别名为all_lastnames
。然后,您可以在SELECT
表
all_lastnames
答案 2 :(得分:0)
如果两个表之间有共同的姓氏,请使用
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。