2012-04-10 6 views
0

가능한 한 최선을 다해 보겠습니다. 내가 뭘 acheive하려고하는 것은이MySQL 쿼리 결과 합치기

  1. 검색 image_likes입니다 * 조명 촛불

    은 사용자가 어떤 이미지를 좋아했다 있는지 확인하고 다음 쿼리에 포함합니다.

  2. 사용자가 업로드 한 images의 이미지를 모두 집어 넣습니다.
  3. 두 결과를 모두 표시하려면 ORDER BY id DESC.

다른 테이블 결과를 포함 할 때 MySQL에서 나는 끔찍합니다. 그래서 나는 충분한 정보를 포함 시켰 으면합니다. 더 이상 필요 없다면 알려주세요.

테이블 구조

image_likes

ID | user_id |

images

ID를 image_id | 업 로더 _id | 날짜

+0

당신이 아주 이상한 테이블 구조가 없다면,이 하나의'joined' 쿼리를 행할 수 있어야한다 : http://en.wikipedia.org/wiki/Join_%28SQL%29 –

+0

정말 도움이 될 것입니다 무엇 이미 시도한 코드이며 그 결과는 – orourkek

+0

@ orourkek입니다. 시도하지는 않았지만 오히려 조사했습니다. 그리고 그것들은 매우 다양한 유형의 조인입니다. 어디에서 시작해야할지 몰랐습니다. – Harry

답변

-1

1 :

SELECT * FROM Image_Likes WHERE User_Id = x ORDER BY Id DESC 

2 :

SELECT * FROM Images WHERE Uploader_Id = x ORDER BY Id DESC 

3 : (모두 함께)

SELECT L.*, I.* FROM Image_Likes L LEFT JOIN Images I ON L.Image_id = I.Id WHERE L.User_ID = x ORDER BY I.Id DESC 

은 사용자의 ID와 X를 교체

+0

명확히하기 위해,이 옵션을 선택하고'images'의 모든'image_likes' 결과를 검색합니까? – Harry

+0

또한 # 1064 - SQL 구문에 오류가 있습니다. 당신의 MySQL 서버 버전에 해당하는 매뉴얼을 확인하십시오. LEFT JOIN 이미지 I ON L.Image_id = I.Id ORDER BY I.Id DESC LIMIT 1 번 라인 근처에서 사용할 올바른 문법은 : – Harry

+0

예! 첫 번째 비트 (Image_Likes의 ID와 일치하는 항목)의 모든 결과를 가져 와서 Images 테이블의 해당 값으로 조인하려고 시도합니다 (ON l.image_id = I.id) – citizenen

0

정말 시도해야 JOINs에 대한 이해를 얻으려고. 당신은 계속해서 나쁜 코드를 작성하고, 나쁜 데이터베이스를 어떻게 사용하는지 알지 못하게 설계하십시오.

SELECT * 
FROM images 
LEFT JOIN image_likes ON image_likes.image_id = images.id 
WHERE image_likes.user_id = $my_id 
OR images.creator_id = $my_id 
ORDER BY images.id DESC 
+0

코드는 의도 한대로 작동하지 않습니다. 현재 사용자가 업로드하는 경우 다른 사람이 좋아하는 것을 포함합니다. 나는 그걸로 놀 것이다. – Harry

+0

@Trendee 실수가 아니라면, ON 절에 AND를 추가하여'image_likes.user_id = $ my_id'를 추가 할 수 있다고 생각합니다. – dqhendricks