我是MySQL的初学者,我很难弄清楚如何解决这个问题:
我有两个表,每个表都有很多条目。让我们说这些是表格:
Table 1 || Table 2
------------- || -------------------
| dt1 | dt2 | || | dt3 | dt4 | dt5 |
------------- || -------------------
| 1 | abc | || | 3 | wsx | 123 |
| 7 | asd | || | 3 | qax | 456 |
| 19 | zxc | || | 4 | rfv | 789 |
------------- || -------------------
我想要做的是得到一个包含“dt2”,“dt4”和“dt5”列并且只有一个条目的表格。为此,我将应用于每个表的查询甚至可能必须限制结果。为了从separetelly每个表中得到我想要的结果,我会做以下事情:
SELECT `dt2` FROM `table1` WHERE `dt1`=7;
和
SELECT `dt4`,`dt5` FROM `table2` WHERE `dt3`=3 LIMIT 0,1;
还有一件事,我不想为每一列使用子查询,因为在我想要解决的实际问题中,我从每个表中调用5或6列。
为了弄清楚,我想得到的是这样的:
-------------------
| dt2 | dt4 | dt5 |
-------------------
| asd | qax | 456 |
-------------------
答案 0 :(得分:9)
SELECT a.dt2, b.dt4, b.dt5
FROM table1 a, table2 b
WHERE a.dt2 = 'asd'
LIMIT 0,1;
答案 1 :(得分:1)
SELECT a.dt2, b.dt4, b.dt5
FROM table1 a, table2 b
WHERE a.dt2 = 'asd'
LIMIT 0,1;
Ben的答案很好,您可以使用逗号(,)分隔更多表,但如果这些表之间存在关系,那么您应该使用一些Sub Query或JOIN
答案 2 :(得分:0)
Ben的回答解决了我的类似问题。
SELECT t1.dt2, t2.dt4, t2.dt5, t2.dt3 #get dt3 data from table2
FROM table1 t1, table2 t2
WHERE t1.dt2 = 'asd' AND t2.dt4 = 'qax' AND t2.dt5 = 456
| asd | qax | 456 | 3 |
' 3'通过查询表2中的“qax”,“456”数据作为我需要的数据,否则您将准确指定从列返回的数据。
我的实例中只有2个表可供查询,因此我可以使用AND表达式,这可能不是最佳实践,并且最有可能是匹配来自多个数据的更好方法表。
编辑:我刚刚意识到这个问题是5岁了。我希望你现在已经实现了你想要的目标。