来自两个表的数据没有重复第一个数据?

时间:2010-04-21 22:14:17

标签: mysql

我在MySQL数据库中有两个表。

用户表和用户元表

我正在寻找一种方法,通过一个查询从两个表中获取所有信息。但不重复来自Users表的信息。

这也是与用户ID号相关的所有信息。例如,user_id = 1。

有没有办法查询数据库并从两个表中收集我的所有信息而不重复第一个信息?

结构示例

用户表

  • USER_ID
  • USER_LOGIN
  • user_pass

用户元表

  • user_meta_id
  • USER_ID
  • user_meta_key
  • user_meta_value

我想摆脱这个

user_id, user_login, user_pass, user_meta_id, user_id, user_meta_key, user_meta_value
                                user_meta_id, user_id, user_meta_key, user_meta_value
                                user_meta_id, user_id, user_meta_key, user_meta_value

5 个答案:

答案 0 :(得分:1)

当然,这很简单,只需使用连接指定查询中每个表所需的字段,并且不包括重复的列。

SELECT Users.field1, Users.field2, Users.field3, Users.user_ID, 
       UsersMeta.field4, UsersMeta.field5
FROM USERS
LEFT JOIN UsersMeta ON (Usuers.user_ID=UsersMeta.User_ID)

答案 1 :(得分:1)

SELECT DISTINCT table1.id, table1.field2, table1.field3, tab_id.id_table1 
FROM table1 
LEFT JOIN tab_id ON (table1.id=tab_id.id_table1)

答案 2 :(得分:0)

您没有提到您正在使用的数据库服务器。

假设您的表格如下:

USERS (user_id, first_name, last_name, gender)
USER_META (user_id, comment_count, likes)

你的查询在MySQL中会是这样的:

SELECT u.user_id, first_name, last_name, gender, comment_count, likes 

FROM USERS u LEFT JOIN USER_META m ON(u.user_id = m.user_id);

答案 3 :(得分:0)

是的,可以在查询中使用DISTINCT关键字

    SELECT DISTINCT Users.field1, DISTINCT users.field2, UsersMeta.field3
          FROM USERS, UsersMeta
    WHERE Users.user_ID=UsersMeta.User_ID

Distinct description

答案 4 :(得分:0)

这是前端工具/语言的工作,例如: Crystal Report,PHP,C#等。请勿在查询中执行此操作