0

タイトルは一目瞭然ですが、もう少し詳しく説明します。

「ページ」と呼ばれるテーブルAがあり、基本的な構造は次のとおりです。

id | name  | content 
0  | page1 | <long html text 1>
1  | page2 | <long html text 2>
2  | page3 | <long html text 3>
3  | page4 | <long html text 4>
4  | page5 | <long html text 5>
5  | page6 | <long html text 6>

「メニュー」と呼ばれるテーブルBがあります。基本的な構造は次のとおりです(もちろん、たくさんあります:

id | link
0  | page3
1  | page5

テーブル B の「リンク」列でまだ使用されていないテーブル A のすべての「名前」を取得するための、リソースに関して最善の方法を知りたい (つまり、ページ 1、ページ 2、ページ 4) 、page6) とそれに対応する「コンテンツ」最初のもの (B からの「リンク」で使用されていない A からの「名前」) を、$name[0] = 「page1」のようなエントリを持つ $name という配列に保存する必要があります"、$name[1] = "page2" など、および $content[0] = などのエントリを持つ $content と呼ばれる別の配列の「コンテンツ」

そこにいるすべての専門家に事前に感謝します!

4

4 に答える 4

2

次のようなクエリを試してください。

select name,content from pages where name not in (select link from menus)

メニューテーブルにないすべてのアイテムがリストされます..

自分で配列のことをしてください:)

幸運と幸せなコーディング!

于 2013-07-16T09:05:40.120 に答える
1

クエリ

SELECT name, content FROM pages WHERE name NOT IN (SELECT link FROM menus)

PHP (疑似)

Loop through results {

    $name[] = $row['name'];
    $content[] = $row['content'];

}
于 2013-07-16T09:23:46.707 に答える
0

//これにより、一致しないエントリが取得されます

Try using id

SELECT a.id, a.name, a.content, b.link FROM table_A AS a
LEFT JOIN table_B AS b ON a.id=b.id
WHERE b.link IS NULL

Try using name

SELECT a.id, a.name, a.content, b.link FROM table_A AS a
LEFT JOIN table_B AS b ON a.name=b.link
WHERE b.link IS NULL
于 2013-07-16T09:32:15.577 に答える