如何进行这样的查询:
SELECT column1 FROM table1 WHERE ppp=$parameter
AND (SELECT * FROM table2 WHERE parameter=$parameter AND qweqwe=$parameter2)
PS:'$' 不是来自 PHP,我只是表明这个值是可变的。
实际上,我需要AND qweqwe<650
在第二个查询中
如何进行这样的查询:
SELECT column1 FROM table1 WHERE ppp=$parameter
AND (SELECT * FROM table2 WHERE parameter=$parameter AND qweqwe=$parameter2)
PS:'$' 不是来自 PHP,我只是表明这个值是可变的。
实际上,我需要AND qweqwe<650
在第二个查询中
也许是这样的:
SELECT
column1
FROM
table1
WHERE
ppp=$parameter
AND EXISTS
(
SELECT
NULL
FROM
table2
WHERE
table1.ppp=table2.parameter
AND qweqwe<$parameter2
)
SELECT column1 FROM table1 WHERE parameter=$parameter
AND exists
(SELECT 1 FROM table2 WHERE table2.parameter=table1.parameter AND table2.qweqwe=$parameter2)
这取决于你的数据。您可以使用如先前答案中所示的存在或使用连接。
SELECT column1 FROM table1
join table2 on table1.ppp=table2.parameter and table2.qweqwe=$parameter2
where table1.ppp=$parameter
在大多数情况下,join 会比存在时快得多。但事实证明,如果 table2 中的每条记录有多个 recotd,则必须使用 distinct
你到底想做什么?第一个 AND 之后的东西应该是合乎逻辑的,例如
... AND 650<(SELECT qweqwe FROM table2 WHERE parameter=$parameter2)