我有以下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获取所有教程。这充当了两个表之间的链接。
以上是否有效?
特别是:
'apps.title = "' . $name . '" AND apps.id = tutorial.app AND tutorial.relation = "' . $user['id'] . '"'
答案 0 :(得分:0)
不,它不会起作用。请参阅Mysql JOIN语法。
答案 1 :(得分:0)
我想得到apps.title等于$ name的行,然后得到 所有基于检索到的应用程序ID的教程。
根据您在上面发布的查询,我认为您可以JOIN
使用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']
或者:
{{1}}