SELECT
teacher_info.teacher_id,
tearcher_name,
teacher_number,
tearcher_type,
teacher_image,
teacher_gender,
teacher_birthday,
identity_number,
company,
technical_title,
technical_grade,
major_type_id,
major_id,
courses_offer,
phone,
email,
relative_material,
LEVEL,
country,
province,
city,
region
FROM
teacher_info,
teacher_region_info
WHERE
teacher_info.teacher_id = teacher_region_info.teacher_id
上面的语句会让teacher_region_info表中如果没有对应的teacher_id就使teacher_info的数据也不显示出来了,如何更改代码?
找到了答案:
SELECT
teacher_info.teacher_id,
tearcher_name,
teacher_region_info.city
FROM
teacher_info,
teacher_region_info
WHERE
teacher_info.teacher_id = teacher_region_info.teacher_id
UNION
SELECT
teacher_info.teacher_id,
tearcher_name,
teacher_region_info.city
FROM
teacher_info,
teacher_region_info
WHERE
teacher_info.teacher_id != NULL
这时候需要用到外连接
把from后面的改成
from teacher_info left join teacher_region_info on teacher_info.teacher_id = teacher_region_info.teacher_id
SQL的四种连接-左外连接、右外连接、内连接、全连接 建议楼主可以去学一下 很有用
select *
from teacher_info
left join teacher_region_info on teacher_region_info.teacher_id=teacher_info.teacher_id
现在不是已经实现了么?
lz是不是没有把需求搞清楚?
SELECT
teacher_info.teacher_id,
tearcher_name,
teacher_number,
tearcher_type,
teacher_image,
teacher_gender,
teacher_birthday,
identity_number,
company,
technical_title,
technical_grade,
major_type_id,
major_id,
courses_offer,
phone,
email,
relative_material,
LEVEL,
country,
province,
city,
region
FROM
teacher_info T1 LEFT JOIN teacher_region_info T2 ON T1.teacher_id = T2.teacher_id
WHERE
teacher_info.teacher_id = teacher_region_info.teacher_id(+)
WHERE
teacher_info.teacher_id = teacher_region_info.teacher_id(+)