0

私は次のMySQLを持っています

    $tutorial = $database->query(
        'SELECT ' . 
            'tutorial.*, ' . 
            'apps.*'.
                'FROM ' . 
                    $database->db_prefix . 'tutorial, ' . 
                    $database->db_prefix . 'apps ' . 
                        'WHERE ' .
                            'apps.title = "' . $name . '" AND apps.id = tutorial.app AND tutorial.relation = "' . $user['id'] . '"'
    );

apps.title が $name に等しい行を取得し、取得したアプリ ID に基づいてすべてのチュートリアルを取得したいと考えています。これは、2 つのテーブル間のリンクとして機能します。

上記はうまくいきますか?

特に:

'apps.title = "' . $name . '" AND apps.id = tutorial.app AND tutorial.relation = "' . $user['id'] . '"'
4

2 に答える 2

0

いいえ、うまくいきません。Mysql JOIN構文を参照してください。

于 2012-10-10T14:08:55.330 に答える
0

apps.title が $name に等しい行を取得し、取得したアプリ ID に基づいてすべてのチュートリアルを取得したいと考えています。

上記のクエリから、次のようなフィールドJOINを使用して 2 つのテーブルを作成できると思います。app

SELECT t.*
FROM tutorials t 
INNER JOIN apps a ON t.app = a.app
WHERE a.title = $name AND t.relation = $user['id']

または:

SELECT 
  tutorial.*
FROM tutorial
WHERE toutorial.app IN
(
    SELECT app FROM apps WHERE apps.title = $name AND app IS NOT NULL
) AND tutorial.relation = $user['id'] 
于 2012-10-10T14:11:33.483 に答える