我希望根据T2中的标准匹配显示T1中的所有字段,但我不希望显示T2中的任何内容。
所以当我查询
时event = "Goal"
tableView.reloadData()
我收到错误(#1054 - 'where子句'中的未知列'exam.Level'),因为我没有在第1行中包含T2(考试)。
但是当我查询
时SELECT * FROM Personal
WHERE Personal.P_ID=Exam.P_ID
AND Exam.Level='B2'
AND Exam.Certification='Full'
我也获得了所有的Exam表数据。
如何返回所有T1(个人)数据?
我检查过以前的问题并发现:Select data (join?) from only one table using an id from another table,但答案仍会返回不需要的T2数据。
例如,
SELECT * FROM Personal, Exam
WHERE Personal.P_ID=Exam.P_ID
AND Exam.Level='B2'
AND Exam.Certification='Full'
答案 0 :(得分:2)
首先,不要在where
子句中使用逗号分隔的表格;这是join
的用途(更多关于此here)
要解决您的问题,您应该更改选择
中的内容SELECT Personal.*
FROM Personal
JOIN Exam
ON Personal.P_ID=Exam.P_ID
WHERE Exam.Level='B2'
AND Exam.Certification='Full'
这将显示所有Personal
列,但您当然可以只选择
SELECT Personal.column1, Personal.column2