0

由于常见的专栏内容,这似乎很容易,但我已经看过了,我已经看过了,但在任何地方都找不到答案。人们可能正在尝试做非常相似的事情,但每个人总是需要它与我需要它的方式略有不同。反正这里是...

工作表

+----+--------+----+----+----+
| id | userid | i1 | i2 | i3 |
+----+--------+----+----+----+
| 1  |   1    | a  | k  | t  |
| 2  |   1    | b  | l  | u  |
| 3  |   1    | c  | m  | v  |
| 4  |   2    | d  | n  | w  |
| 5  |   2    | f  | o  | x  |
| 6  |   2    | g  | p  | y  |
| 7  |   3    | h  | q  | z  |
| 8  |   3    | i  | r  | a  |
| 9  |   4    | j  | s  | b  |
+----+--------+----+----+----+

user_table 表

+--------+----+----+----+
| userid | fn | ln | i4 |
+--------+----+----+----+
|   1    | a  | b  | w  |
|   2    | c  | d  | x  |
|   3    | e  | f  | y  |
|   4    | g  | h  | z  |
+--------+----+----+----+

我想从一个表中选择多个列,从另一个表中选择多个列,并且列的数量不一样。因此,如果我从作业表中选择 id、i1、i2 和 i3,并从 user_table 表中选择 fn、ln 和 i4,那么这意味着我从作业表中选择 4 条信息,从 user_table 中选择 3 条信息桌子。

所以假设我想选择一个特定的工作并显示该工作的信息,但我也想显示属于该工作的用户的信息,那么它可能会像这样......

工作1:

id:1,i1:a,i2:k,i3:t,fn:a,ln:b,i4:w

对于工作 4,它将是:

id:4,i1:d,i2:n,i3:w,fn:c,ln:d,i4:x

jobs 表和 user_table 表有共同的 userid 列。那么我如何使用这个公共列编写我的查询来执行上述操作?

我用 SELECT 和 WHERE 和 AND 和 JOIN 和 UNION 和 AS 和 GROUP 和 BY 尝试了各种各样的事情,并将表名与列名分开写,并将表名和列名写在一起,中间加上句点。我只是找不到编写此查询的正确方法。

在下面这些不起作用的示例中,我只是想从 user_table 表中选择一件事,并从非用户 ID 的作业表中选择所有内容,但是如果我需要从第二个表中选择多个内容的能力需要。所以我想从第一个表中选择所有内容,从第二个表中选择某些内容。

不起作用:

SELECT id, i1, i2, i3, i4 FROM jobs, user_table WHERE jobs.id = $id GROUP BY id

不起作用:

SELECT * from jobs where id = $id UNION SELECT i4 from user_table where userid = $userid
4

3 回答 3

3

查询

SELECT * FROM jobs
INNER JOIN user_table on jobs.userid = user_table.userid

将您的职位信息与用户信息相结合。然后只需添加您的 where 子句:

SELECT * FROM jobs
INNER JOIN user_table on jobs.userid = user_table.userid
where jobs.id = $id
于 2013-10-04T02:09:31.043 回答
1

您想像这样加入表格:

SELECT j.column1, j.column2, u.column5, u.column6 
FROM 
  jobs j 
INNER JOIN 
  user_table u 
ON 
  u.userid = j.userid 
WHERE 
  j.id = $id
于 2013-10-04T02:08:28.057 回答
0

尝试

SELECT id, i1, i2, i3, i4 FROM jobs 
inner join user_table on jobs.id = user_table.id WHERE jobs.id = $id GROUP BY id
于 2013-10-04T02:06:55.240 回答