2013-07-10 90 views
-1

好,所以我有一个小小的问题,我得到了2db和表像这样Mysql/sql/zend查询与一个选择?

Table User 
user_id 

Table UserrToData 
user_id int pk 
data_id int 

Table UserData 
data_id 
name 
nick 

我user_ID的,我需要从用户数据得到记录,使用1个查询这可能吗?

当然,如果有谁知道我会很感激,如果他会帮我:)

对于我的选择只有user_id > data_id

更新

家伙,我得到了巨大的分贝我的关系只是简化了问题的最低^ _-

回答

1

希望这有助于:

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

有了这样的数据很少,但是,没有必要单独的表,只是存储姓名和尼克在用户表:

Table User 
user_id pk 
name 
nick 
1

你应该过时的考虑你的数据库设计。最高目标始终是防止裁员。

如果你想让用户有一个以上的用户数据进入你应该这样定义你的数据库:

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 = ?