首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这个两个表的SQL查询(部分地)只能与"UNION“一起工作?

问为什么这个两个表的SQL查询(部分地)只能与"UNION“一起工作?
EN

Stack Overflow用户
提问于 2012-03-05 03:52:44
回答 1查看 87关注 0票数 0

我想在同一个查询中从两个表中提取数据。下面是(部分)工作的查询:

代码语言:javascript
复制
    $query = "SELECT city,radio,radio_site,rfacebook,rtwitter
    FROM brasil_radio
    UNION SELECT city,newspaper,newspaper_site,facebook,twitter
    FROM brasil_newspapers 
    WHERE state='Alagoas' 
    ORDER BY city 
    LIMIT $offset, $rowsPerPage";

此查询不会产生空白页面,但会显示数据,但不会将所有数据放在适当的位置。(也就是说,它在同一列中列出了广播和报纸站点,尽管在PHP中,我为每个站点设置了单独的列)。

然而,这个看起来更流畅的查询结果是一个空白页面:

代码语言:javascript
复制
    $query = "SELECT * FROM brasil_newspapers, brasil_radio 
    WHERE state='Alagoas' 
    ORDER BY city 
    LIMIT $offset, $rowsPerPage";

关于这两个引用above...they的表的注释都有七个字段,每个字段都有一个自动编号的主键。其中一个表的数据比另一个表的数据少得多,因为我想确保它正常工作,但我在每个表中都有"Alagoas“州的所有记录,同样,上面的第一个示例部分工作。我真的在努力弄清楚这一点,并很乐意提供您需要的任何其他信息。顺便说一句,我没有在第二个查询中使用“SELECT*”来偷懒……我试着只选择我想要的列,但仍然不起作用。

提前感谢你,愿上帝保佑你。

EN

回答 1

Stack Overflow用户

发布于 2012-03-05 04:56:30

联合按照查询列在各个select语句中的出现顺序组合查询列。由于报纸和广播都在同一位置,因此联盟将它们合并为一个栏目。不确定它是否对您的情况有帮助,但您至少可以通过执行以下操作将它们分开:

代码语言:javascript
复制
 SELECT NULL as newspaper, radio FROM brasil_radio
UNION
 SELECT newspaper, NULL as radio FROM brasil_newspaper

那么报纸的行将有一个空的单选单选栏目,反之亦然。

第二个查询取决于您的表布局。您在那里所做的是一个交叉联接,这意味着每个表中的每一行都与另一个表中的每一行进行联接。你可能不想这样。:)您是否在第二个查询中看到SQL错误?

如果不知道您希望如何显示这些数据,我就不能告诉您哪种类型的查询适合您。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9558262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档