0

我希望显示器显示单个信息单元。例如,我希望 ID 1 'jscbb_directory' 仅显示 ID 1 'pictures' 列的信息。相反,它在pictures.picture 中显示所有内容。

SELECT jscbb_directory.id, pictures.picture
FROM jscbb_directory, pictures
WHERE jscbb_directory.id = pictures.picture;

输出:

1
2
3
4

我使用fourwinds作为前端,我想要它,所以当用户点击ID 1'jscbb_directory'时,它只显示来自'pictures'的ID 1的信息

4

3 回答 3

3

尝试指定您要显示的 id

像那样

    SELECT jscbb_directory.id, pictures.picture
    FROM jscbb_directory, pictures
     WHERE jscbb_directory.id = pictures.picture
     AND jscbb_directory.id = 1;   // <--------- put the id number you want or the variable $id
于 2013-01-30T23:46:26.370 回答
2

我会建议你用JOIN一个ON子句。不是因为它解决了问题,而是因为它更容易阅读。

SELECT随你喜欢。在此处选择您想要的列。
FROM jscbb_directory JOIN pictures ON jscbb_directory.id = pictures.picture

现在你有了和以前一样的东西,但更具可读性。

所以现在在最后添加一个过滤器。where jscbb_directory.id=1;

随时澄清您要做什么。我不确定我是否理解你的问题。


这又是我的答案,全部合二为一。

SELECT jscbb_directory.id, pictures.picture
FROM jscbb_directory JOIN pictures ON jscbb_directory.id = pictures.picture
WHERE jscbb_directory.id = 1;

并且,它输出

+----+---------+
| id | picture |
+----+---------+
|  1 |       1 |
+----+---------+

我不知道你为什么要两次相同的东西。所以也许你应该试试这个

SELECT jscbb_directory.id
FROM jscbb_directory JOIN pictures ON jscbb_directory.id = pictures.picture
WHERE jscbb_directory.id = 1;

或这个

SELECT pictures.*
FROM jscbb_directory JOIN pictures ON jscbb_directory.id = pictures.picture
WHERE jscbb_directory.id = 1;

看看他们做了什么

于 2013-01-30T23:47:03.333 回答
1

您似乎将 JOIN 条件与 WHERE 子句过滤器的使用混为一谈。您应该使用ONorUSING子句明确您的 JOIN 条件,并在 WHERE 中应用过滤条件。所以它应该是这样的:

SELECT jscbb_directory.id, pictures.picture
FROM jscbb_directory
INNER JOIN pictures ON jscbb_directory.id = pictures.picture
WHERE jscbb_directory.id = ?

where?替换为您要过滤的 id。

于 2013-01-30T23:44:06.773 回答