SQL连接和筛选更进一步
我需要添加一个条件,只选择字段(my_galleries.format)等于字符串值“pictures”的行。我正在尝试将它添加到这个正在工作的sql语句中SQL连接和筛选更进一步,sql,Sql,我需要添加一个条件,只选择字段(my_galleries.format)等于字符串值“pictures”的行。我正在尝试将它添加到这个正在工作的sql语句中 SELECT gallery_url, preview_url FROM my_galleries, my_gallery_previews WHERE my_galleries.gallery_id = my_gallery_previews.gallery_id 我试过了,运气不好 SELE
SELECT
gallery_url,
preview_url
FROM
my_galleries,
my_gallery_previews
WHERE
my_galleries.gallery_id = my_gallery_previews.gallery_id
我试过了,运气不好
SELECT
gallery_url,
preview_url
FROM
my_galleries,
my_gallery_previews
WHERE
my_galleries.gallery_id = my_gallery_previews.gallery_id
AND my_galleries.format='pictures'
有什么想法吗?我建议不要使用来自foo,bar的
,其中foo.key=bar.key
方法来执行加入
,因为它不是很灵活,而且对代码的新读者来说也不明显。相反,您应该执行显式的JOIN
:
SELECT
gallery_url,
preview_url
FROM
my_gallery_previews
INNER JOIN my_galleries ON my_gallery_previews.gallery_id = my_galleries.gallery_id
WHERE
my_galleries.format = 'pictures'
你试试这个怎么样
SELECT gallery_url, preview_url FROM my_galleries
JOIN my_gallery_previews ON
my_galleries.gallery_id = my_gallery_previews.gallery_id
WHERE my_galleries.format='pictures'
使用联接时,请确保在所选列的前面加上它们各自的表。我希望这会有所帮助正如其他人所说,我建议您使用新的连接结构,因为它更具可读性
SELECT mg.gallery_url,
mgp.preview_url
FROM my_galleries mg
JOIN my_gallery_previews mgp ON mg.gallery_id = mgp.gallery_id
AND mg.format = 'pictures'
可以使用AND语句将筛选条件放置在联接中。(只是另一种方式)
您的查询似乎语法正确。我建议您仔细查看您的数据集或将其编辑到您的问题中。当前可能没有图片库预览与正在停止连接功能的现有库行共享库id。您得到的结果是什么?旁注:请使用较新版本的,而不是您使用过的。在我看来是正确的。也许可以尝试:从my_galleries.format='pictures'的my_galleries.format中选择my_galleries.format,查看该表中是否有匹配的图片。如果您这样做,那么我怀疑您的联接排除了这些行。