簡體   English   中英

MySQL SELECT 使用 WHERE 子句查詢不從兩個表返回行

[英]MySQL SELECT Query with WHERE clause Not returning rows from two tables

我有兩個表格 InvoicePDF 和 UserMaster。 它們使用公共列 (CompanyID) 連接。 當我嘗試運行以下查詢時,我得到空的結果集。 想知道為什么?

順便說一句,我希望在 CustomerID 為 3 的第二個表中返回與 CompanyID 匹配的第一個表的所有行。

SELECT A.CompanyID,
B.COMPANYID,
B.CUSTOMERID,
A.InvPDFFileName,
A.InvMonth,
A.InvYear,
A.InvoiceID 
FROM InvoicePDF A, UserMaster B 
WHERE B.CompanyID=A.CompanyID and B.CustomerID=3

使用左連接並在 ON Cluase 中應用您的條件B.CustomerID=3 - 並始終使用顯式連接而不是隱式連接

SELECT A.CompanyID,B.COMPANYID,
B.CUSTOMERID,A.InvPDFFileName,
A.InvMonth,A.InvYear,A.InvoiceID 
FROM InvoicePDF A left join UserMaster B on B.CompanyID=A.CompanyID and B.CustomerID=3

您的查詢按預期工作

DROP TABLE IF EXISTS INVOICEPDF,USERMASTER;
CREATE TABLE INVOICEPDF(COMPANYID INT   , InvPDFFileName varchar(3),InvoiceID int);
create table usermaster(COMPANYID int,CUSTOMERID int);

insert into invoicepdf values
(1,'aaa',1),(2,'bbb',2),(1,'aaa',3);
insert into usermaster values
(1,3),(2,4),(3,3);



SELECT A.CompanyID,
B.COMPANYID,
B.CUSTOMERID,
A.InvPDFFileName,
#A.InvMonth,
#A.InvYear,
A.InvoiceID 
FROM InvoicePDF A, UserMaster B 
WHERE B.CompanyID=A.CompanyID and B.CustomerID=3;

+-----------+-----------+------------+----------------+-----------+
| CompanyID | COMPANYID | CUSTOMERID | InvPDFFileName | InvoiceID |
+-----------+-----------+------------+----------------+-----------+
|         1 |         1 |          3 | aaa            |         1 |
|         1 |         1 |          3 | aaa            |         3 |
+-----------+-----------+------------+----------------+-----------+
2 rows in set (0.00 sec)

這意味着您的一個或多個 where 條件是錯誤的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM