你在mysqli准备声明中的含义是什么?

时间:2016-01-19 12:40:35

标签: php mysql sql mysqli

你,c,s在下面的陈述中表示什么?

$stmt = $mysqli->prepare("SELECT 
        u.id,
        u.rank,
        c.country,
        s.state_name,
        u.share_to
        FROM users u
        LEFT JOIN country c ON c.id = u.country_id
        LEFT JOIN state s ON s.id = u.state_id");

2 个答案:

答案 0 :(得分:2)

在此查询中,它们作为表别名,可以在选择或连接表名后附加,否则如果两个表包含相同的列,则查询将不知道您指的是哪个表。

或者代替别名,您可以直接引用表名称,例如select users.id, users.rank等。

但是,由于您使用的是c和s,因此此查询中缺少一些连接。

答案 1 :(得分:1)

您的书面查询未完成。

其中 u 被定义为作为用户表的别名,但没有其他表 c s 在您的查询中。

  u.id,
        u.rank,
        c.country,
        s.state_name,
        u.share_to

u.rank中定义排名字段是用户喜欢或其他的表格

更新您的问题后

“c”别名国家和“s”状态别名如果您不使用别名而不是需要使用tablename定义字段,则用于表示使用短名称的表

喜欢 tablename.fieldname

仅当您使用多个表来标识字段名称时才需要

tablename.fieldname