【问题标题】:Mysql/sql/zend query with one select? [closed]mysql/sql/zend 一键查询? [关闭]
【发布时间】:2013-07-10 14:53:58
【问题描述】:

所以我遇到了一个小问题,我有一个数据库和两个这样的表

Table User
user_id

Table UserrToData
user_id int pk
data_id int

Table UserData
data_id
name
nick

我得到了 user_id,我需要从 userdata 中获取记录,是否可以使用 1 个查询?

当然,如果有人知道如果他能帮助我,我会非常感激:)

对于选择我只得到了user_id > data_id的关系

更新

伙计们,我得到了巨大的数据库,我只是将问题简化到最低限度^_-

【问题讨论】:

    标签: php mysql sql zend-framework zend-db


    【解决方案1】:

    希望这会有所帮助:

    SELECT name, nick
    FROM  UserToData utd INNER JOIN UserData ud ON utd.data_id = ud.data_id
    WHERE utd.user_id = [supplied userid]
    

    但是,数据这么少,不需要单独的表,只需将 name 和 nick 存储在 User 表中:

    Table User
    user_id pk
    name
    nick
    

    【讨论】:

      【解决方案2】:

      您应该过度考虑您的数据库设计。最高目标始终是防止冗余。

      如果您希望用户拥有多个用户数据条目,您应该像这样定义您的数据库:

      Table User
      user_id pk
      
      Table UserData
      data_id pk
      user_id fk
      name
      nick
      

      所以查询是SELECT * FROM UserData WHERE user_id = ?

      如果您只希望用户拥有一组用户数据,则应将其集成到用户表中:

      Table User
      user_id pk
      name
      nick
      

      所以查询将是SELECT * FROM User WHERE user_id = ?

      【讨论】:

        【解决方案3】:

        为什么将姓名和昵称放在单独的表格中?您可以将数据放在一个用户表中。了解有关如何在数据库中制定实体和关系的更多信息可能是明智的。

        无论哪种方式,如果您以后需要在 Zend 中做类似的事情,您可以使用 Zend_Db_Select 并进行连接。 Lookie Lookie:http://framework.zend.com/manual/1.12/en/zend.db.select.html#zend.db.select.building.join

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-09
          相关资源
          最近更新 更多