我需要将几个表中的数据导出到.csv文件中。我已经编写了CSV输出代码,但现在我需要正确构建查询。
每个表都包含USER_ID
字段。该字段用于将用户的数据从一个表与另一个表相关联。我需要从这些表中获取所有数据,每个用户的信息都在一行中完全表示。
我需要的简单例子:
TABLE A
|USER ID | NAME | FAVORITE_COLOR | AGE |
|007 |James | black | 46 |
----------------------------------------
TABLE B
|USER ID | JOB | LOCATION | NOTES |
|007 |Agent| N/A | cool guy |
--------------------------------------
JOINED OUTPUT I NEED (albeit with many more users / tables):
|USER ID | NAME | FAVORITE_COLOR | AGE | JOB | LOCATION | NOTES |
|007 |James | black | 46 |Agent| N/A | cool guy |
--------------------------------------------------------------------
我知道这可以通过joins
完成,但我不知道如何进行选择所有用户的查询,并从多个表中连接所有数据,以便每个用户都是一行他们所有的数据。
任何帮助或代码轻推正确的方向表示赞赏! :)
答案 0 :(得分:0)
尝试此查询
select t1.*,t2.* from table_1 as t1 left join table_2 as t2 on t1.user_id = t2.user_id
答案 1 :(得分:0)
试试这个
select t1.USER ID , NAME , FAVORITE_COLOR , AGE ,JOB , LOCATION , NOTES
from TABLE1 t1
INNER JOIN table2 t2
ON t1.USER_ID = t2.USER_ID
编辑>
如果您有3个或4个表,那么只需加入它们即可添加此
INNER JOIN table3 t3
ON t2.USER_ID = t3.USER_ID
INNER JOIN table4 t4
ON t3.USER_ID = t4.USER_ID
答案 2 :(得分:0)
使用以下表格
TABLE A
|USER ID | NAME | FAVORITE_COLOR | AGE |
|007 |James | black | 46 |
|008 |John | Doe | 77 |
|010 |Amy | McClain | 26 |
----------------------------------------
TABLE B
|USER ID | JOB | LOCATION | NOTES |
|007 |Agent| N/A | cool guy |
|010 |Agent| MI | babe |
--------------------------------------
SELECT TableA.*, TableB.*
FROM TableA
LEFT JOIN TableB
ON TableA.[USER ID] = TableB.[USER ID]
无论TableA
中是否有匹配的记录,都会提取TableB
中找到的所有记录。以下是结果:
|USER ID | NAME | FAVORITE_COLOR | AGE | JOB | LOCATION | NOTES |
|007 |James | black | 46 |Agent| N/A | cool guy |
|008 |John | Doe | 77 |Null | Null | Null |
|010 |Amy | McClain | 26 |Agent| MI | babe |
通过将LEFT JOIN
更改为INNER JOIN
,您可以强制查询仅提取在两个表中找到的记录。以下是结果:
|USER ID | NAME | FAVORITE_COLOR | AGE | JOB | LOCATION | NOTES |
|007 |James | black | 46 |Agent| N/A | cool guy |
|010 |Amy | McClain | 26 |Agent| MI | babe |
答案 3 :(得分:0)
尝试此查询
$qry = "SELECT t1.USER_ID,t1.NAME,t1.FAVORITE_COLOR,t1.AGE,t2.JOB,t2.LOCATION,t2.NOTES FROM TABLE_1 as t1 LEFT JOIN TABLE_2 as t2 ON t1.USER_ID = t2.USER_ID";