我有三张桌子。
第一个表格如下:
+----+----+----+
| id | x | y |
+----+----+----+
第二和第三个表格如下:
+----+----+----+----+----+----+----+----+----+----+----+----+
| id | Z1 | Z2 | Z3 | .. | .. | .. | .. | .. | .. | .. | Zn |
+----+----+----+----+----+----+----+----+----+----+----+----+
n
非常大,大约800-900。
我知道这是非常丑陋的表和数据库。但它是一个原始数据集和某个实验的学习集。请忽略它。
查询的骨架就像:
'SELECT a.*, b.*, c.* \
FROM `test_xy` a, `test_1` b, `test_2` c \
WHERE a.id = b.id AND b.id = c.id'
我关心的是,查询的结果包括id
字段三次。我希望id
字段只在结果的前面出现一次。
我可以通过切片结果表(通过Python,MATLAB等)
来实现但是,有更好的方法来处理大量的列吗?我的意思是,在查询阶段可以排除第二和第三个表的id
字段吗?
答案 0 :(得分:0)
答案是USING语法:顺便提一下MySQL。 http://dev.mysql.com/doc/refman/5.5/en/join.html。在做其他事情之前学习使用JOIN;将jon条件放入where子句只是计划错误。
SELECT a.*, b.*, c.*
FROM `test_xy` a JOIN `test_1` b USING(`id)
JOIN `test_2` c USING(`id)