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