*와 distinct를 사용하는 데 문제가 있습니다. 저는 테이블에 가입하여 다음과 같은 진술을하려고합니다 :Distinct를 *
SELECT DISTINCT Name, * FROM table_a JOIN table_a.id=table_b.id WHERE status=1
그러나 나는 그렇게 할 수 없습니다. Distinct with * 옵션을 사용하는 방법이 있습니까?
*와 distinct를 사용하는 데 문제가 있습니다. 저는 테이블에 가입하여 다음과 같은 진술을하려고합니다 :Distinct를 *
SELECT DISTINCT Name, * FROM table_a JOIN table_a.id=table_b.id WHERE status=1
그러나 나는 그렇게 할 수 없습니다. Distinct with * 옵션을 사용하는 방법이 있습니까?
지금이 권리를 테스트 할 수있는 권한이없는,하지만 난 문제가 distinct
하지라고 생각하지만, 같은 이름을 가진 각 테이블의 컬럼 (id
을 같은)이 아닌 것을 그것을 알고하지 않는 두 개의 상충되는 기둥 중에서 선택할 수 있습니다. select distinct table_a.*, table_b.* ...
하면 변경됩니까? 그들은 서로 다른 :-)에게 있기 때문에
select distinct table_a. *, table_b. *를 사용하면 더 이상 오류가 발생하지 않지만 내가 그렇게 할 때 구별도 작동하지 않습니다 –
@Devin - 그 다음에 뚜렷하게 선택할 컬럼을 선택하고'*'를 사용하는 대신 나열하십시오. – tvanfosson
알았어, 고마워! –
DISTINCT *
아마 모든 행을 반환합니다
모두 다른 이름이 DISTINCT name
또는 이름에 대한 통계를 검색합니다 (예를 들어 카운트) SELECT name, COUNT(*) FROM ... GROUP BY name
을 사용을 사용하세요.
뭘 원하는지 확실하지 않습니다.
두 개의 id 열이 아닌 주어진 이름의 열만 반환하려는 경우가있을 수 있습니다.
이 경우 표준 SQL 쿼리이 같다 : 선택을 수행 한 후, 행 중복 것을SELECT * FROM table_a JOIN table_b USING (id) WHERE status=1
키워드 DISTINCT 수단은 제거되고 (열 이름 중복되지 않음).
는 기본적으로 솔루션은 더 같이있다 : 당신은 속성의 열거를 피하려면
SELECT *
FROM table_a, table_b
JOIN table_a.id = table_b.id
WHERE status = 1
GROUP BY table_a.name
이 유용합니다. 그렇게하면 관계가 변경되고 (하나의 특성이 제거되거나 추가됨) 쿼리가 작동하지 않습니다.
이것은 아주 오래된 질문입니다! 귀하의 구문이 유효하지 않습니다 (힌트 :'FROM' 절에'table_b'라는 테이블이 포함되어 있지 않아야합니까?) 그 대답은'SELECT * FROM table_a NATURAL JOIN table_b WHERE status = 1; "이라고 의심됩니다. – onedaywhen
@onedaywhen : 죄송합니다, 방금 누락 된 어휘를 수정했습니다. 대답은 무엇을 의미합니까? 허용 된 응답이 작동하지 않으며'*'를 사용할 때'DISTINCT '문제를 해결하지 못합니다. – Dyin
수정 된 쿼리가 중복 된 열을 반환합니다. 물론 추측 할 수는 있습니다.하지만 OP가 별개의 행이 아닌 별개의 열을 필요로하고 NATURAL JOIN이이를 달성하는 좋은 방법이라고 생각합니다. – onedaywhen
어떤 SQL 방언 우리가 말을하는거야? 또한 DISTINCT가 문제이고'Name, *'부분이 아닌지 확신합니까? –
왜이 태그는 mysql과 postgresql 둘 다 태그가 붙어 있습니까? –
오류 메시지가 무엇입니까? – JJJ