似乎是一个蛋糕走路,因为常见的列事,但我看起来,我看起来,无法在任何地方找到答案。人们可能会尝试做非常类似的事情,但每个人总是需要它与我需要的方式略有不同。无论如何这里... ...
职位表
+----+--------+----+----+----+
| 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
答案 0 :(得分: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
答案 1 :(得分: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
答案 2 :(得分: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