我有一张叫朋友的桌子和一张桌子照片。我正在尝试查询朋友照片或拥有朋友照片的用户。我想我需要为朋友表上的内部联接起别名,但不确定
Friends Table
user_id int
friend_id int
[other attribute field]
Photos Table
id int
user_id int
[other attribute field]
例如,如果我想查询朋友的照片,我会运行
SELECT `photos`.`id` FROM `photos` LEFT JOIN `friends` ON (`friends`.`friend_id` = `photos`.`user_id`) WHERE `friends`.`user_id` = 1
或者,如果我只想查询用户表 id
SELECT `photos`.`id` FROM `photos` WHERE `photos`.`user_id` = 1
问题是当我尝试将两者都放在同一个结果集中时
SELECT `photos`.`id`
FROM `photos`
LEFT JOIN `friends` ON ( `friends`.`friend_id` = `photos`.`user_id` )
WHERE `friends`.`user_id` =1
OR `photos`.`user_id` =1
LIMIT 0 , 30
由于左连接,这显然会得到错误的结果我为我拥有的每个朋友都得到了一个结果
我在想我需要为 OR 子句或其他东西内部加入一个别名表,但无法弄清楚。