【问题标题】:SQL query to use results of two other queries?SQL查询使用其他两个查询的结果?
【发布时间】:2015-01-30 11:00:12
【问题描述】:

我有两个查询来从表中获取 OLD 和 NEW 值等数据。这里“item1”是我从中检索“旧”和“新”值的列。

现在,使用结果集 Query1 和 Query2 ,我想检查第二个表中的字段“itemOLD”和“itemNEW”,以检查 qbove 两个查询结果。与 Query1 结果一样,我将使用 itemNEW 查看 itemOLD AND Query 2。两者都在同一行,我想检索结果。

编辑1

表格中的数据

  dbitem TABLE

    id1     id2     item1   
    ------------------------
    1       11      obj1    
    2       22      obj2    
    3       33      obj3    
    4       44      obj4    


   dbcateg TABLE

    id      itemOLD   itemNEW
    --------------------------
    9       obj3      obj1
    8       obj4      obj1
    7       obj1      obj3
    6       obj1      obj4

   RESULT 
   ---------

   Query 1 : set of OLD items from dbitem TABLE
                item1
               -------
                obj1
                obj2

   Query 2 : set of NEW items from dbitem TABLE
                item1
               -------
                obj3
                obj4


   MainQuery: from dbcateg TABLE

        dbcateg.id  dbcateg.itemOLD    dbcateg.NEW
        -------------------------------------------
         7              obj1           obj3 
         6              obj1           obj4

【问题讨论】:

  • 我犯了很多错误,甚至没有评论!好的,,,让领导来
  • 可能更简单的是为此创建一个 MySQL 查询?例如尝试使用IN 运算符和子选择:db_query(" SELECT dbcateg.item1,dbcateg.item2 from dbcateg WHERE dbcateg.item1 IN (SELECT dbitem.item1,dbitem.item2 from dbitem) );
  • 感谢您的评论..请让我考虑一下..
  • @stepozer :但我希望这两个结果分别再次查询它们以检查“dbcateg”表。像这样first = "select the item from db'; second = "select the item from db" ; the_final= select the items from newDb where newDb.first ="first" AND newDb.second = "second"
  • 目前还不清楚如何获得该结果集,因为给定列中的数据具有不同的格式。这些表是如何关联的?将行选择到结果集中的标准是什么?这里问题的本质是您没有解释表的真实世界含义或它们之间的关系。

标签: php mysql select drupal-7


【解决方案1】:

我认为这就是您正在寻找的内容(您的查询组合):

SELECT dbcateg.id, dbcateg.item2 
FROM dbitem 
INNER JOIN dbcateg on 
(dbitem.item1 = dbcateg.item1 OR dbitem.item1 = dbcateg.item2) AND 
(dbitem.item2 = dbcateg.id1 OR dbitem.item2 = dbcateg.id2)

【讨论】:

  • 感谢您的查询,但我得到“返回零结果”
  • 现在只有我可以添加数据..请看一下并指导我
  • 你怎么知道哪些是旧货,哪些是新货?为什么你只得到第 7 类和第 6 类?
  • 它通过 Query1 & Query2 WHERE 条件。我从dbcateg TABLE 中过滤掉我需要的东西
  • 添加关于您的问题的查询。如果你也把你的例子放在sqlfiddle.com上,那会很有帮助。
猜你喜欢
  • 2010-10-01
  • 1970-01-01
  • 2013-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-10
相关资源
最近更新 更多