有人可以解释这个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
的目的是防止重复出现在结果集中。您可能在具有相同distinct
的invoice_charges
中有两条记录,其中invoiceid
不在invoiceid
表中。
关于mysql - MySQL选择与Distinct和哪里与is_null?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23986587/