我需要一些帮助...
表A(操作)
table_a_id
data
表B(操作元数据)
table_b_id
table_a_id
data_field_id_1
data_field_id_2
data_field_id_3
用户可以选择下拉列表:
用户希望获得适合多选项的所有操作。
我的想法如下:
我需要从表A中获取所有行,
任何人都可以帮我解决这个SQL查询吗? 我变得越来越困惑。
答案 0 :(得分:0)
select a.*
from tablea a join tableb b
on a.table_a_id <> b.table_a_id
where b.data_field_id_1 IN (1,2,3) --replacement needed
or b.data_field_id_2 IN (4,5,6) --replacement needed
-- or a.table_a_id is NOT IN Table B
or b.data_field_id_1 IS NULL
or b.data_field_id_2 IS NULL
or b.data_field_id_3 IS NULL
这应该让你开始。这些表格根据您的某个条件join
进行table_a_id is NOT IN Table B
。
答案 1 :(得分:0)
我会尝试使用LEFT OUTER JOIN
向您展示tablea在tableb中没有子项的行
SELECT a.table_a_id,
a.data
FROM TABLEA a
LEFT OUTER JOIN TABLEB b ON a.table_a_id = b.table_a_id
WHERE b.data_field_id_1 IN (your ids)
OR b.data_field_id_2 IN (your other ids)
OR b.data_field_id_1 IS NULL
OR b.data_field_id_2 IS NULL
OR b.data_field_id_3 IS NULL
答案 2 :(得分:0)
SELECT T1.*, T2.* FROM table_a
LEFT JOIN table_b
ON T1.table_a_id = T2.table_a_id
where T2.data_field_id_1 IN (--values)
OR T2.data_field_id_2 IN (--values)
OR T1.table_a_id is NOT IN table_b
OR T2.data_field_id_1 IS NULL
OR T2.data_field_id_2 IS NULL
OR T2.data_field_id_3 IS NULL
你可以做JOIN但我喜欢使用LEFT JOIN并排查看数据: - )