Mysql 我希望第二个结果列表仅限于第一个查询中的账单。这就是为什么我尝试使用IN,然后使用嵌套选择。另一方面,内部连接将给我两个表的交叉结果。嗯,我查找了拼写错误和其他类似的错误,但没有找到任何错误。现在我试了一下,效果很好。我有点困惑,但同时也松了一口气,我有了

Mysql 我希望第二个结果列表仅限于第一个查询中的账单。这就是为什么我尝试使用IN,然后使用嵌套选择。另一方面,内部连接将给我两个表的交叉结果。嗯,我查找了拼写错误和其他类似的错误,但没有找到任何错误。现在我试了一下,效果很好。我有点困惑,但同时也松了一口气,我有了,mysql,sql,Mysql,Sql,我希望第二个结果列表仅限于第一个查询中的账单。这就是为什么我尝试使用IN,然后使用嵌套选择。另一方面,内部连接将给我两个表的交叉结果。嗯,我查找了拼写错误和其他类似的错误,但没有找到任何错误。现在我试了一下,效果很好。我有点困惑,但同时也松了一口气,我有了正确的逻辑!谢谢:)嗯,我找了一些打字错误和其他类似的错误,但没有找到。现在我试了一下,效果很好。我有点困惑,但同时也松了一口气,我有了正确的逻辑!谢谢:)谢谢你的意见!这也是一个选择,但我认为在我的特殊情况下,有标记的答案做得更好。谢谢你的输


我希望第二个结果列表仅限于第一个查询中的账单。这就是为什么我尝试使用IN,然后使用嵌套选择。另一方面,内部连接将给我两个表的交叉结果。嗯,我查找了拼写错误和其他类似的错误,但没有找到任何错误。现在我试了一下,效果很好。我有点困惑,但同时也松了一口气,我有了正确的逻辑!谢谢:)嗯,我找了一些打字错误和其他类似的错误,但没有找到。现在我试了一下,效果很好。我有点困惑,但同时也松了一口气,我有了正确的逻辑!谢谢:)谢谢你的意见!这也是一个选择,但我认为在我的特殊情况下,有标记的答案做得更好。谢谢你的输入!这也是一个选择,但我认为在我的特殊情况下,有标记的答案做得更好。
  SELECT C.Id, C.Name, BC.Id AS BCID
    FROM Customers AS C
    RIGHT JOIN Bills AS Bc ON C.Id = BC.Bills_Customer
    RIGHT JOIN Months AS M ON Bc.Month_Bills = M.Id
    WHERE C.Argument = 'KP'
    AND YEAR(bm.Datum) = YEAR(CURRENT_TIMESTAMP) AND MONTH(bm.Datum) = MONTH(CURRENT_TIMESTAMP)
    ORDER BY C.Name
  SELECT DISTINCT Account, LastLogin, Licences_Bills 
    FROM Licences 
    WHERE LastLogin > CONVERT(varchar,dateadd(d,-(day(dateadd(m,-1,getdate()-2))),dateadd(m,-1,getdate()-1)),106)
    AND LastLogin < CONVERT(varchar,dateadd(d,-(day(getdate())),getdate()),106)
    AND Access = 1 --AND Licences_Bills IN
    ORDER BY Licences_Bills ASC
 +----------+---------+-----------+
 |  Id      | Name    |   BCID    |  
 +----------+---------+-----------+
 |    1     |  John   |    500    |  
 +----------+---------+-----------+
 |    2     |  Max    |    501    |
 +----------+---------+-----------+
 |    5     |  Foo    |    502    |  
 +----------+---------+-----------+
 |    7     |  Bar    |    503    |
 +----------+---------+-----------+
 +----------+--------------+-------------------+
 |  Account |   LastLogin  |  Licences_Bills   |  
 +----------+--------------+-------------------+
 |    abc   |  07.03.2014  |    500            |  
 +----------+--------------+-------------------+
 |    aac   |  13.03.2014  |    500            |
 +----------+--------------+-------------------+
 |    acb   |  28.03.2014  |    504            |  
 +----------+--------------+-------------------+
 |    bca   |  19.03.2014  |    506            |
 +----------+--------------+-------------------+
SELECT t1.*,t2.*
FROM
(query 1) t1
JOIN (query 2) t2 
ON(t1.BCID = t2.Licences_Bills)
SELECT * FROM

(

SELECT C.Id, C.Name, BC.Id AS BCID
    FROM Customers AS C
    RIGHT JOIN Bills AS Bc ON C.Id = BC.Bills_Customer
    RIGHT JOIN Months AS M ON Bc.Month_Bills = M.Id
    WHERE C.Argument = 'KP'
    AND YEAR(bm.Datum) = YEAR(CURRENT_TIMESTAMP) AND MONTH(bm.Datum) = MONTH(CURRENT_TIMESTAMP)


) as T1
INNER JOIN

(
SELECT DISTINCT Account, LastLogin, Licences_Bills 
    FROM Licences 
    WHERE LastLogin > CONVERT(varchar,dateadd(d,-(day(dateadd(m,-1,getdate()-2))),dateadd(m,-1,getdate()-1)),106)
    AND LastLogin < CONVERT(varchar,dateadd(d,-(day(getdate())),getdate()),106)
    AND Access = 1

) T2

ON T1.BCID=T2.Licences_Bills
SELECT DISTINCT Account, LastLogin, Licences_Bills 
FROM Licences 
WHERE LastLogin > CONVERT(varchar,dateadd(d,-(day(dateadd(m,-1,getdate()-2))),dateadd(m,-1,getdate()-1)),106)
AND LastLogin < CONVERT(varchar,dateadd(d,-(day(getdate())),getdate()),106)
AND Access = 1 
AND Licences_Bills IN
(
  SELECT BC.Id
  FROM Customers AS C
  RIGHT JOIN Bills AS Bc ON C.Id = BC.Bills_Customer
  RIGHT JOIN Months AS M ON Bc.Month_Bills = M.Id
  WHERE C.Argument = 'KP'
  AND YEAR(bm.Datum) = YEAR(CURRENT_TIMESTAMP) AND MONTH(bm.Datum) = MONTH(CURRENT_TIMESTAMP)
)
ORDER BY Licences_Bills ASC