SQL: 内部 JOIN 语句没有给出正确的记录
SQL: Inner JOIN statement doesn't give the right records
对于下面的 SQL,我试图记录从右边开始的所有匹配行 table "order_flags".
SELECT id,
po_number,
alert
FROM orders
INNER JOIN order_flags on order_flags.order_fk
WHERE order_flags.alert = " date("Y-m-d") . "
AND order_flags.order_fk = orders.id
AND orders.flag_overdue_po='1';
table如下。第一个是订单 table 而第二个 order_flags table.
没有进一步调查,但您的 ON 语句只包含一个值。它需要你的两个表的两个匹配列,如
ON table1.column_id = table2.column_id
如果您不确定相关记录一定存在于order_flags
,请使用left join.The sql maybe
SELECT id,
po_number,
alert
FROM orders
LEFT JOIN order_flags on order_flags.order_fk = orders.id
WHERE order_flags.alert = " date("Y-m-d") . "
AND orders.flag_overdue_po='1';
对于下面的 SQL,我试图记录从右边开始的所有匹配行 table "order_flags".
SELECT id,
po_number,
alert
FROM orders
INNER JOIN order_flags on order_flags.order_fk
WHERE order_flags.alert = " date("Y-m-d") . "
AND order_flags.order_fk = orders.id
AND orders.flag_overdue_po='1';
table如下。第一个是订单 table 而第二个 order_flags table.
没有进一步调查,但您的 ON 语句只包含一个值。它需要你的两个表的两个匹配列,如
ON table1.column_id = table2.column_id
如果您不确定相关记录一定存在于order_flags
,请使用left join.The sql maybe
SELECT id,
po_number,
alert
FROM orders
LEFT JOIN order_flags on order_flags.order_fk = orders.id
WHERE order_flags.alert = " date("Y-m-d") . "
AND orders.flag_overdue_po='1';