一句很难写的SQL语句
有三张表,一张为A,里面有program_id的字段,一张为B,里面有program_id和program_name的字段,一张为C,和B一样有program_id和program_name的字段
现在我想得到这样的查询结果,就是把A的program_id对应到B的program_name或对应到C的program_name,这两个是不可能同时对应到的,也就是说,A表里面的program_id要么存在于B表,要么存在于C表。
比如B表可能有两条记录(1,ProgramA),(4,ProgramB)
C表可能也有两条记录(2,ProgramC),(3,ProgramD)
我想把A里面的program_id(它必然能对应B或C中的一条记录)对应到B或C
我写了这样的语句
select * from A,B,C where A.program_id=B.program_id or A.program_id=C.program_id
但是运行的结果并不是我想的那样,而是多出了很多(是它自己排列组合所致)
也就是语句中的or用得不对,但我又想不到更好的,求救