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