我在查询时遇到问题。我有 4 张 table
first table: person
ID_No
-----
1
2
3
second table: update_general_details
Update_ID ID_No Email Mob_No
--------- ----- -------------- --------
1 1 some@gmail.com 078231231
third table: update_training
Training_ID ID_No Training_Name Training-Date
----------- ---- ------------- -------------
1 2 Mysql training 2014-09-09
third table: update_award
Award_ID ID_No Award_Name Award_Year
-------- ----- ----------- ----------
1 1 Best in Math 2010
我想要做的是选择不同的 ID 号,其中 ID 号可以包含在第二个表或第三个或第四个表中。 期望的结果:
ID_No
1
2
这是我的代码:
Select DISTINCT person.ID_No,
from update_award, update_general, update_training, person
where EXISTS (SELECT update_award.ID_No
FROM update_award, person
WHERE person.ID_No = update_award.ID_No) or
EXISTS (SELECT update_training.ID_No
FROM update_training, person
WHERE person.ID_No = update_training.ID_No) or
EXISTS (SELECT update_general_details.ID_No
FROM update_general, person
WHERE person.ID_No = update_general.ID_No)
此查询不返回任何内容。提前谢谢你
最佳答案
请从主查询中删除 detail 表并从子查询中删除 person 表,这应该会有很大帮助:
Select person.ID_No
from person
where EXISTS (
SELECT 1
FROM update_award
WHERE person.ID_No = update_award.ID_No
)
or EXISTS (
SELECT 1
FROM update_training
WHERE person.ID_No = update_training.ID_No
) or EXISTS (
SELECT 1
FROM update_general
WHERE person.ID_No = update_general.ID_No
);
关于mysql - 如果存在于表 2 中或存在于表 3 或表 4 中,则选择列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32951964/