2014-08-29 79 views
0
SELECT * 
FROM pay_invoice_list p 
LEFT outer JOIN paimentDetl d 
on p.invoice_no= d.invoiceNo and p.invoice_no LIKE ' %$temp%' 
ORDER BY iid DESC 

这是我的查询。但它不能正常工作。拖车桌子没有正确连接。以及“喜欢”都不起作用。如何使用Like in left outer join

+0

你的表格是什么样的?你的期望与实际结果是什么?你真的只想加入包含'$ temp'的invoice_no的行,或者你想过滤已经加入的结果(即'WHERE') – knittl 2014-08-29 08:59:13

回答

0

尝试像在WHERE子句中这

SELECT * 
FROM pay_invoice_list p 
    LEFT outer JOIN paimentDetl d ON p.invoice_no = d.invoiceNo 
WHERE p.invoice_no LIKE ' %$temp%' 
ORDER BY iid DESC 
2
SELECT * 
FROM pay_invoice_list p 
LEFT outer JOIN paimentDetl d 
on p.invoice_no= d.invoiceNo 
Where p.invoice_no LIKE ' %$temp%' 
ORDER BY iid DESC 

您需要做的就是将WHERE添加到您的查询中。

+0

Ha,挨打8秒! ;-) – 2014-08-29 08:59:33

+0

@jeroen_de_schutter,这就是我通常发生的事情!哈! – 2014-08-29 09:03:00

0

当你想过滤的你left outer join(这里paimentDetl)右表试试这个

SELECT * 
FROM pay_invoice_list p 
LEFT outer JOIN paimentDetl d 
on p.invoice_no= d.invoiceNo 
where p.invoice_no LIKE ' %$temp%' 
ORDER BY iid DESC 
0

你应该在你join声明只能过滤。当你想过滤你的左表(这里是pay_invoice_list),你应该在where clause中添加你的过滤条款。

SELECT * 
FROM pay_invoice_list p 
LEFT outer JOIN paimentDetl d ON p.invoice_no= d.invoiceNo 
WHERE p.invoice_no LIKE '%$temp%' 
ORDER BY iid DESC 
0

认沽p.invoice_no。

SELECT * 
FROM pay_invoice_list p 
LEFT outer JOIN paimentDetl d on p.invoice_no= d.invoiceNo 
WHERE p.invoice_no LIKE ' %$temp%' 
ORDER BY iid DESC 

这将从pay_invoice_list invoice_no LIKE“%$ temp%”和所有记录paimentDetl发票号码匹配哪里哪里返回的所有记录。