我正在使用phpMyAdmin来查询数据库。
我想选择TableA中Date ='2010-08-01'的所有条目。然后我想使用结果表中项目的SubID属性来查找TableB中具有匹配SubID的所有条目。我知道我必须在某个地方使用JOIN,但我不确定如何或在哪里。
我搜索了StackOverflow,似乎有很多类似的问题,但没有一个像我的基本(aka noob)。我无法弄清楚他们在谈论什么。为了让您了解我所知道的,我今天开始学习SQL,并阅读了关于SQL的W3 School教程。我觉得答案非常明显,我会因为没有把它弄清楚而自责。
非常感谢。
答案 0 :(得分:2)
一个很好的参考是http://www.w3schools.com/sql
您需要的是:
SELECT *
FROM TableA a
JOIN TableB b on a.SubID = b.SubID
WHERE a.Date = '2010-08-01'
根据其他帖子进行编辑 - JOIN可能更有效,然而如果TableB中有多个记录具有相同的SubID
,您将从TableA获得重复记录回。
答案 1 :(得分:1)
您实际上不需要JOIN - 只需要一个子查询来过滤TableB。像这样,例如:
SELECT SubID
FROM TableB
WHERE SubID IN
(SELECT SubID
FROM TableA
WHERE Date='2010-08-01');
那就是说,根据@ ck的回答,你可以使用联接。
答案 2 :(得分:1)
如果您正在寻找加入,ck's post提供了一个简单的解决方案。
接近这个的另一种方法是使用子查询(在阅读你的问题标题时我想到了这一点):
SELECT * FROM TableB WHERE SubID IN
(SELECT SubID FROM TableA WHERE Date = '2010-08-01')
外部SELECT
查询(从TableB
中选择)选择在SubID
查询的结果集中找到SELECT
s的行(从{{1中选择) }})。例如,如果TableA
使用这些TableA
s:
然后将从SubID
TableB
为SubID
的{{1}}中选择行。