1
我需要加入两个表tableA
和tableB
,但问题是,在tableB
我有两个IDtableA
我需要加入他们,所以我得到这两个值。我想用Codeigniter的活动记录类来实现它。这里是一个小的演示:如何使用其他表中使用的一个表中的多个ID连接两个表?
tableA:
╔══════════╦════════════╗
║ video_id ║ video_name ║
╠══════════╬════════════╣
║ 1 ║ short ║
║ 2 ║ long ║
║ 3 ║ black ║
║ 4 ║ white ║
╚══════════╩════════════╝
tableB
╔═════════╦════════╦════════╗
║ pair_id ║ pair_a ║ pair_b ║
╠═════════╬════════╬════════╣
║ 1 ║ 1 ║ 2 ║
║ 2 ║ 1 ║ 4 ║
║ 3 ║ 4 ║ 3 ║
║ 4 ║ 3 ║ 2 ║
╚═════════╩════════╩════════╝
这不起作用:
$this->db->select('*')
->from("tableA")
->join('tableB AS A', 'tableA.video_id = A.pair_a')
->select("tableA.video_name as VIDEO_A")
->join('tableB AS B', 'tableA.video_id = B.pair_b')
->select("tableA.video_name as VIDEO_B")
->get()
->result();
的最终结果必须是这样的:
stdClass Object
(
[0] => stdClass Object
(
[VIDEO_A] => short
[VIDEO_B] => long
)
[1] => stdClass Object
(
[VIDEO_A] => short
[VIDEO_B] => white
)
[2] => stdClass Object
(
[VIDEO_A] => white
[VIDEO_B] => black
)
[3] => stdClass Object
(
[VIDEO_A] => black
[VIDEO_B] => long
)
)
你现在得到了什么? – worldask 2014-09-23 08:01:39
VIDEO_A和VIDEO_B是相同的。 – fjckls 2014-09-23 08:03:12