我想在同一个查询中从两个表中提取数据。下面是(部分)工作的查询:
$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中,我为每个站点设置了单独的列)。
然而,这个看起来更流畅的查询结果是一个空白页面:
$query = "SELECT * FROM brasil_newspapers, brasil_radio
WHERE state='Alagoas'
ORDER BY city
LIMIT $offset, $rowsPerPage";关于这两个引用above...they的表的注释都有七个字段,每个字段都有一个自动编号的主键。其中一个表的数据比另一个表的数据少得多,因为我想确保它正常工作,但我在每个表中都有"Alagoas“州的所有记录,同样,上面的第一个示例部分工作。我真的在努力弄清楚这一点,并很乐意提供您需要的任何其他信息。顺便说一句,我没有在第二个查询中使用“SELECT*”来偷懒……我试着只选择我想要的列,但仍然不起作用。
提前感谢你,愿上帝保佑你。
发布于 2012-03-05 04:56:30
联合按照查询列在各个select语句中的出现顺序组合查询列。由于报纸和广播都在同一位置,因此联盟将它们合并为一个栏目。不确定它是否对您的情况有帮助,但您至少可以通过执行以下操作将它们分开:
SELECT NULL as newspaper, radio FROM brasil_radio
UNION
SELECT newspaper, NULL as radio FROM brasil_newspaper那么报纸的行将有一个空的单选单选栏目,反之亦然。
第二个查询取决于您的表布局。您在那里所做的是一个交叉联接,这意味着每个表中的每一行都与另一个表中的每一行进行联接。你可能不想这样。:)您是否在第二个查询中看到SQL错误?
如果不知道您希望如何显示这些数据,我就不能告诉您哪种类型的查询适合您。
https://stackoverflow.com/questions/9558262
复制相似问题