我有$table2Status
的以下数组:
[{
"Status_for_t2”:”2”,”id": "4"
}, {
"Status_for_t2": "14",
"id": "6"
}]
从table2
has no index to
table1`获取,但它需要是一对多的关系,他们唯一的共同点就是
两个表都是另一个表的索引状态。
我需要以某种方式追加来自table2
的列,我想将table2
id添加到我的数组中,以便我可以
离开加入table2
,但我不知道该怎么做。我试过这个ON t1.status IN ($t2_status)
和ON t1.status = 't2.status'
,但显然它们是错的,查询不会扫描正确的密钥
数组,它只填充我的数组的第一个索引。我觉得我应该在WHERE
之后添加一些内容。
我在这里缺少什么?这样做的正确方法是什么?我如何桥接这两张桌子?
任何帮助都将不胜感激。
function theResult ( $table2Status) {
$t2_status = implode( ',', array_column( $table2Status, ’Status_for_t2’ ) );
$t2_id= implode( ',', array_column( $table2Status, 'id' ) );
//echo json_encode($theUserEvrIDs);
$sql =
"SELECT
t1.date,
t1.status,
t2.name_one,
t2.name_two,
t2.status
FROM table1 as t1
Left JOIN table2 as t2
ON t1.status IN ($t2.status)
WHERE
t1.status IN ($t2_status))
GROUP BY t1.id
HAVING COUNT(DISTINCT t1.status ) ORDER BY t1.date ASC";
$result = $this->conn->query( $sql );
while ( $row = mysqli_fetch_assoc( $result ) )
$returnArray[] = $row;
return $returnArray;
}
答案 0 :(得分:0)
感谢@SloanThrasher和@RaymondNijland协助我。
我试图看看是否有办法使用数组加入表格,但我想这里没有更便宜的/快捷方式,所以我最后通过添加另一列T1_id
来创建关系table2并获取table1.id索引。然后,我只需将ON t1.status IN ($t2.status)
更改为ON t2.T1_id = t1.id
。
看起来它工作正常。
然而,我仍然想知道是否有其他方法。
由于