PHP MySql查询2个同时没有共同属性的表?

时间:2010-08-19 16:59:58

标签: php mysql database

我正在尝试查询数据库中的2个表,每个查询彼此无关,而另一个则在同一页面上。

查询1 - 页面上的第一个查询将检索从表A中的整个页面中找到的文本和图像。

查询2 - 第二个查询将从表B中检索具有图像,描述和标题的多个产品。

我知道将第二个查询放在第一个查询的while循环中会起作用但当然效率非常低。

我如何以及通过1个查询检索所需数据的最佳方法是什么?

谢谢,

  • 戴恩

3 个答案:

答案 0 :(得分:3)

所以你想知道的是,如果在同一网页上有2个查询可以吗?它的A-OK。向前走它完全正常。没有人希望桌面新闻和桌面产品之间的联系。使用两个查询从两个不相关的表中获取数据是正常的。

答案 1 :(得分:0)

使用LEFT或INNER JOIN(取决于您是否要在TableA中显示TableB中没有相应记录的记录)

SELECT a.*, b.*
FROM TableA a
[LEFT or INNER] JOIN TableB b ON (b.a_id = a.id)

答案 2 :(得分:0)

如果无法将两个表相互关联,则无法使用JOIN从两个表中获取记录。您 COULD 使用UNION查询,但这假设您可以匹配每个表中的字段,因为UNION要求您从每个表中选择相同数量/类型的字段。

SELECT 'pageinfo' AS sourcetable, page.id, page.images, page.this, page.that
WHERE page.id = $id

UNION

SELECT 'product' AS sourcetable, products.id, products.image, product.other, product.stuff

但这非常难看。您仍然强制数据库服务器在后台执行两个查询以及将它们组合到单个结果集中的额外工作,然后您必须执行额外的工作来解决代码中的问题以进行引导。

在两个单独的查询中,更容易,在概念上和维护方面。

相关问题