从mysql中选择记录在哪里

时间:2012-05-16 20:06:21

标签: php sql

如果您查看下面的SQL,我无法整理查询(让我疯狂),请注意和/或。我需要将两个类别中艺术家的图像组合成一个调用但是如果我使用下面的sql我得到第一个类别中的所有图像以及第二个类别中每个艺术家的所有图像而不是第二个类别中的所有图像对于特定的艺术家。如果您使用AND调用它只会在两者中获取图像。所以基本上希望这是有道理的。感谢所有帮助。

SELECT i.img_name, i.ordered_by, i.img_description, a.artist_path_name, a.artist_id, a.artist_dir, a.artist_name, a.first_name, a.last_name, a.artist_titletag, a.artist_metadesc, a.artist_metakey, ck.catKey_id, ck.keyword
        FROM images AS i JOIN artists AS a USING (artist_id)
        JOIN img_cat_table AS imc USING (img_id)
        JOIN catKeys AS ck USING (catKey_id)
        WHERE artist_name = 'j' AND catKey_id = 5 OR catKey_id = 1

1 个答案:

答案 0 :(得分:2)

如果您同时使用AND/OR,那么您将需要使用括号来确定订单

WHERE (artist_name = 'j') AND (catKey_id = 5 OR catKey_id = 1)

甚至使用以下WHERE子句:

WHERE (artist_name = 'j') AND (catKey_id IN (5, 1))