上面三个表要查询出来的已经勾选上的列。中间的message_id包含左右表的message_id,要求查询出的结果不能有重复值,左右表message_text和text的数据类型都是ntext,所以不能用DISTINCT。
或者将下列Sql语句转换成一条:
select Message_index.message_id,Message_index.username,Message_index.date,text_table.Text
from Message_index,text_table
where Message_index.message_id=text_table.message_id
select Message_index.message_id,Message_index.username,Message_index.date,image_table.Message_Text
from Message_index,image_table
where Message_index.message_id=image_table.Message_id
还请能人帮帮忙啊!谢谢啦!SQLselect

解决方案 »

  1.   

    --转换成一条语句
    select Message_index.message_id,Message_index.username,Message_index.date,text_table.Text,image_table.Message_Text
    from Message_index,text_table,image_table
    where Message_index.message_id=text_table.message_id AND Message_index.message_id=image_table.Message_id--或者
    select Message_index.message_id,Message_index.username,Message_index.date,text_table.Text,image_table.Message_Text
    from Message_index 
    INNER JOIN text_table ON Message_index.message_id=text_table.message_id 
    INNER JOIN image_table ON Message_index.message_id=image_table.Message_id
      

  2.   

    万一message_id有重复,应该取哪个表的呢?
      

  3.   

    提供的语句查询出来的有,你的这两条语句执行出来,一个结果都没有,注意,中间表的message_id是包含左右两表的message_id.目的就是要把执行结果合并!
      

  4.   

    本人已经解决了,现提供sql语句select Message_index.message_id,Message_index.username,Message_index.date,text_table.Text as Text
    from Message_index,text_table
    where Message_index.message_id=text_table.message_id
    union all
    select Message_index.message_id,Message_index.username,Message_index.date,image_table.Message_Text as Text
    from Message_index,image_table
    where Message_index.message_id=image_table.Message_id
    只需在两条查询语句之间添加union all即可,union all使用条件就是字段个数相同,这样就可以把两个查询语句的执行结果合并!不过还是感谢上述提供帮助的回帖者!