0

データベース1はウィジェットと呼ばれ、「id」と「title」があります。データベース2はwidget-layoutsと呼ばれ、「module-id」、「widget-id」、「position」、および「weight」があります。

私がやろうとしているのは、widgets.idがwidget-layout.widget-idに存在するかどうかを確認し、存在する場合は、widget-layouts.position=0を実行することです。 tウィジェットレイアウトに存在します。

これが私が扱ってきたmysqlクエリです。

SELECT * FROMウィジェット、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 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 に答える
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 に答える