有人可以解释这个MySQL查询及其作用吗?

据我了解,它执行以下操作:

选择invoices_charge发票id,在发票表中不输入任何内容。那是对的吗?

SELECT DISTINCT invoice_charges.invoiceid as invoice
FROM    `invoice_charges`
LEFT JOIN `invoice`
ON invoice_charges.invoiceid = invoice.invoiceid
WHERE invoice.invoiceid IS NULL


关键字DISTINCT在此查询中是否有效果?以下查询是否是该查询达到相同结果的更好的选择?

SELECT invoice_charges.invoiceid as invoice
FROM    `invoice_charges`
WHERE invoice_charges.invoiceid  NOT IN  invoice.invoiceid
GROUP BY invoice_charges.invoiceid

最佳答案

此查询返回invoiceid中所有不匹配的invoice_charges

大概,这些都是失败的外键关系的例子。

invoice的目的是防止重复出现在结果集中。您可能在具有相同distinctinvoice_charges中有两条记录,其中invoiceid不在invoiceid表中。

关于mysql - MySQL选择与Distinct和哪里与is_null?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23986587/

10-12 18:05