从另一个表和列中拉出一个表和列?

时间:2013-01-30 23:37:07

标签: mysql

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

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

输出:

1
2
3
4

我使用四声作为前端,我希望如此,当用户点击ID 1'jscbb_directory'时,它只显示来自'pictures'的ID 1的信息

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

我建议您将JOINON子句一起使用。不是因为它解决了问题,而是因为它使阅读更容易。

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;

看看他们做了什么

答案 2 :(得分:1)

似乎您正在混合使用JOIN条件和WHERE子句过滤器。您应该使用ONUSING子句明确您的JOIN条件,并在您的WHERE中应用过滤条件。所以看起来应该是这样的:

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

?替换为您要过滤的ID。