$query = mysql_query("SELECT company.*, factory.*
FROM company
FULL JOIN factory
ON company.n_id = factory.n_id
WHERE company.n_id = '$n_id' AND factory.n_id = '$n_id'") or die(mysql_error());
上面你看到我的查询。它给我Unknown table 'company'
错误,但公司表存在100%。我错过了什么?
修改:当我使用右连接或左连接而不是完全连接时,它可以工作......但我需要完全加入。哦,我会射杀某人。
答案 0 :(得分:2)
MySQL中没有完整的外部联接 - 请参阅this link for how to get the functionality。
$query = mysql_query(" SELECT * FROM COMPANY c
LEFT JOIN FACTORY f ON f.n_id = c.n_id
UNION ALL
SELECT * FROM COMPANY c
RIGHT JOIN FACTORY f ON f.n_id = c.n_id
WHERE c.? IS NULL
AND c.n_id = mysql_real_escape_string($n_id)
AND f.n_id = mysql_real_escape_string($n_id)") or die(mysql_error());
您需要将?
更新为COMPANY
表格中列的名称,而不是n_id
。
答案 1 :(得分:0)
我用自己的表替换了表和列并运行了查询,并且出现了相同的错误。删除查询的不同部分给了我更多与不存在的列或表相关的错误。我没有解释,可能是因为我从未使用过FULL JOIN。
我发现将FULL JOIN更改为其他类型的连接修复了该问题。尝试将FULL JOIN更改为JOIN或RIGHT JOIN并查看这些结果是否符合您的要求。
编辑:哦,我看到你关于现在需要FULL JOIN的评论。你能用UNION改写查询吗?