0

数据库一称为小部件,它有“id”和“title”。数据库 2 称为小部件布局,它具有“模块 ID”、“小部件 ID”、“位置”和“权重”。

我要做的是检查widgets.id是否存在于widget-layout.widget-id中,如果存在,那么widget-layouts.position = 0。我还想获取不存在的小部件的值t 存在于小部件布局中。

这是我一直在使用的 mysql 查询。

SELECT * FROM widgets, widget-layouts WHERE (widge-layouts.position = '0' AND widgets.id = widget-layouts.widget-id) OR widgets.id NOT IN (SELECT * FROM widget-layouts)

通过这个查询,我得到了一个巨大的小部件列表,其中每个小部件都显示了多次。

有什么想法吗?

4

2 回答 2

0
 SELECT *
 FROM widgets AS w
     LEFT JOIN widget-layouts AS wl
         ON w.id = wl.widget-id
 WHERE wl.widget-id IS NULL
     OR wl.position = '0'      
于 2009-12-21T14:01:12.067 回答
0
SELECT * FROM widgets LEFT JOIN widget-layouts on widget-id = id WHERE position = 0

应该显示那些存在并且位置 = 0

SELECT * FROM widgets RIGHT JOIN widget-layouts on id = widget-id where id is NULL

应该只显示那些存在于小部件布局中的

于 2009-12-21T14:08:48.970 回答