"SELECT *
FROM property t1
LEFT
JOIN address t2
ON t1.pin = t2.pid
AND t1.status = t2.status
LEFT
JOIN ownerinfo t3
ON t1.pid = t3.pid
AND t1.status = t3.status
LEFT JOIN boundaries t4
ON t1.pid = t4.pid
AND t1.status = t4.status
LEFT
JOIN status t5
ON t1.pid = t5.pid
AND t1.status = t5.status
LEFT
JOIN references t6
ON t1.pid = t6.pid
AND t1.status = t6.status
LEFT
JOIN classification t7
ON t1.kind = t7.sysid
LEFT
JOIN oaddress t8
ON t1.basicinfo_id = t8.basicinfoid
LEFT
JOIN obasicinfo t9
ON t1.basicinfo_id = t9.id
WHERE t1.pid = :pid
AND t1.status = :status
"
这是我对左连接的查询。我使用左连接主要是因为在某个时间或实例中,其中一个表中不会有与其他表相关的数据。但我还需要获取相关的数据。如果我使用 INNER JOIN 的话,我将无法得到结果。目前 LEFT JOIN 可以完成这项工作。但我得到了太多的 rowcount()
以至于我内存不足
。对于 2 条目,在某些实例上我得到 6144
记录,在其他实例上我得到 12288
,这就是我得到内存不足
的地方(取决于哪个表有数据、哪个表没有数据的组合)。
- 我应该在
插入
期间填写所有表格并使用INNER JOIN
吗? INNER JOIN
会减少或减少rowcount()
的数量吗?- 最适合获得更少
rowcount()
的查询是什么?
更新
- t1 有 2 个条目
- t2 有 1 个条目
- t3 有 2 个条目
- t4 有 1 个条目
- t5 和 t6 没有条目
- t7 有 15 条记录
- t8 有 21 个条目
- t9 有 12 个条目
最佳答案
它取决于您的表结构,也许左表中很少有值返回几次,并且比您收到的笛卡尔值还要少
关于php - 左连接VS内连接较少行数mysql pdo php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32376137/