我需要从列表中选择所有ID,列号为ID
和X
,WHERE X = 'Y'
。对于每个ID
s,我需要在不同的表中查找一些东西:使用另一个查询的非常简单的SQL查询
如果ID
不存在,它在最终结果中不会获得任何行。
如果ID
确实存在,我想要做一些逻辑来确定它是否得到一个行。为了简单起见,假设逻辑是:如果列Q > 0
。
所以最后的结果只是一列ID
s,抛出一些,因为他们由于以上两个原因之一被取消资格。
谢谢。
我需要从列表中选择所有ID,列号为ID
和X
,WHERE X = 'Y'
。对于每个ID
s,我需要在不同的表中查找一些东西:使用另一个查询的非常简单的SQL查询
如果ID
不存在,它在最终结果中不会获得任何行。
如果ID
确实存在,我想要做一些逻辑来确定它是否得到一个行。为了简单起见,假设逻辑是:如果列Q > 0
。
所以最后的结果只是一列ID
s,抛出一些,因为他们由于以上两个原因之一被取消资格。
谢谢。
这是JOIN
s的用于制造。
SELECT table1.* FROM table1
INNER JOIN table2
ON table1.ID = table2.table1_ID
AND table2.Q > 0;
这将选择表1中的所有记录(有标识),然后删除那些没有在表2匹配的记录或没有问答的任何记录> 0
如果我收到了你的问题的权利,这可能是你在找什么:
select id from your_table
where X = 'Y'
and id in (select id from other_table where Q > 0)
可以使用子查询:
SELECT id FROM table1 WHERE table1.id IN (SELECT q FROM table2 WHERE table2.q > 0) AND table1.x='y'
SQL将检查是否从最外面的查询结果的子查询(括号中的部分),如果他们不将不会返回任何东西。
编辑你的问题的格式。请使用'code'和'blockquote'编辑器选项并放置一些线路断路器。 – 2012-03-02 21:17:04