我在mysql中有两个表,其中一个表是另一个表的父表。
CREATE TABLE `a` (
`a_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(32) DEFAULT NULL,
PRIMARY KEY (`a_id`)
);
CREATE TABLE `b` (
`b_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`a_id` int(10) unsigned NOT NULL,
`stuffs` varchar(32) DEFAULT NULL,
PRIMARY KEY (`b_id`)
);
很明显,两个表之间的关系是1-N,表'b'可能记录表'a'中的任何记录,但可能没有。
如果表'b'没有表'a'中某些记录的记录,我使用此查询连接这些表:
SELECT * FROM TABLE a LEFT JOIN TABLE b ON (a.a_id = b.a_id)
然后使用mysqli_fetch_object
获取记录的对象,它将a.a_id
替换为b,a_id
NULL
除了在查询中使用SELECT
外,我该怎样阻止它?
有没有办法在php和mysqli函数中阻止它?
答案 0 :(得分:1)
选择具有唯一别名的列
SELECT
a.a_id,
b.a_id as b_a_id
,a.name
,b.b_id
,b.stuffs
FROM
TABLE a
LEFT JOIN TABLE b ON (a.a_id = b.a_id)
查询具有相同名称的列,将选择最后一列,因此如果您想要访问表{1},则需要为表b的a_id
列使用不同的别名