我不是一个SQL人员,我只是尝试了每个JOIN
MySQL提供的服务。
WHERE
,ORDER BY
,LIMIT
使用带偏移的view1中的数据(没有这些条件的数据不正确。)WHERE
(或其他最好的)条件NULL
s就好了!)我只会告诉你两个SELECT
对我有用,而不是我想出的哈希。
对于view1:
SELECT * FROM view1
WHERE column1 IS NULL OR column1 = 1
ORDER BY dateColumn DESC LIMIT index1, count1;
(index1和count1是我用于存储过程的IN
对于view2:
SELECT * FROM table2
WHERE column1 = ? AND table1_id IN (
SELECT id FROM view1
WHERE column1 IS NULL OR column1 = 1
ORDER BY dateColumn DESC LIMIT index1, count1
)
GROUP BY table1_id
(?是我输入的任意值)
我的智慧结束了。我不知道如何融合这两个。
具体细节信息
请注意,IN
的{{1}}几乎与view2
查询完全相同。谢谢!
答案 0 :(得分:1)
您可以为table2
编写子查询并在那里添加WHERE子句,也可以在查询的前面添加WHERE子句 -
SELECT * FROM table2 t2
JOIN (
SELECT id FROM table1
WHERE column1 IS NULL OR column1 = 1
ORDER BY dateColumn DESC
LIMIT index1, count1
) t1
ON t1.id = t2.table1_id
WHERE
t2.column1 = ?
GROUP BY
t2.table1_id
在这个例子中,我使用了JOIN而不是WHERE IN
条件。
答案 1 :(得分:0)
这个查询怎么样:
Select t1.id
FROM table1 t1
JOIN table2 t2 ON t1.id = t2.table1_id
WHERE t1.column1 IS NULL OR t1.column1 = 1
答案 2 :(得分:0)
我认为它应该对你有帮助
Select TableName1.id
FROM TableName1
JOIN TableName2 ON TableName1.id = TableName2.id
WHERE TableName1.column1 IS NULL OR TableName1.column1 = 1