A volte devo trattare la stessa tabella di due tabelle separate. Qual'è la soluzione?Come posso fare riferimento a una singola tabella più volte nella stessa query?
5
A
risposta
6
utilizzare un alias come un nome di variabile in SQL:
select
A.Id,
A.Name,
B.Id as SpouseId,
B.Name as SpouseName
from
People A
join People B on A.Spouse = B.id
2
utilizzare un alias:
SELECT t1.col1, t2.col3
FROM tbl t1
INNER JOIN tbl t2
ON t1.col1 = t2.col2
9
è possibile fare riferimento, basta essere sicuri di utilizzare una tabella alias
select a.EmployeeName,b.EmployeeName as Manager
from Employees A
join Employees B on a.Mgr_id=B.Id
2
Alias è la soluzione più ovvia
SELECT * FROM x1 AS x,y1 AS y
Tuttavia, se il tavolo è il risultato di una query un comune espressioni di tabella è molto utile
;WITH ctx AS
(select * from z)
SELECT y.* FROM ctx AS c1,ctx AS c2
Una terza soluzione - indicata quando la query dura a lungo - è tabelle temporanee:
SELECT *
INTO #monkey
FROM chimpanzee
SELECT * FROM #monkey m1,#monkey m2
DROP TABLE #MONKEY
Nota un'espressione di tabella comune è disponibile solo per una query (la query immediatamente successiva) e le tabelle temporanee per l'intero batch.
Problemi correlati
- 1. Come posso fare riferimento a una tabella TEMPORARY più di una volta nella stessa query?
- 2. Stessa query secondaria utilizzata più volte in una singola query
- 3. Chiamare CTE più volte nella stessa query
- 4. Mysql Come posso recuperare 2 set di risultati in una singola query dalla stessa tabella?
- 5. Come fare riferimento a un CTE due volte?
- 6. sql seleziona query nella stessa tabella
- 7. SELEZIONA più COUNT dalla stessa tabella in una query
- 8. Non è possibile utilizzare il gruppo più e più volte (partition by) nella stessa query?
- 9. Perché a volte (a volte) devo fare riferimento agli assiemi a cui fa riferimento l'assieme riferimento?
- 10. Quando più chiamate alla stessa UDF sono in una singola istruzione, quante volte sarà chiamata?
- 11. Più di molte relazioni a una singola tabella
- 12. Come definire più variabili nella singola istruzione
- 13. Selezione SQL con più riferimenti a tabella singola
- 14. Inserimenti MySQL simultanei nella stessa tabella: come?
- 15. Combinare più query della stessa tabella in un'unica istruzione SQL
- 16. Progettazione database: più tabelle rispetto a una tabella singola
- 17. Una chiave esterna può fare riferimento a più tabelle?
- 18. la chiave esterna può fare riferimento alla chiave primaria nella stessa tabella?
- 19. PDO Inserisce i dati due volte su una singola query
- 20. Come posso restituire più righe identiche in base a un campo quantità nella riga stessa?
- 21. Come recuperare la stessa colonna due volte con condizioni diverse nella stessa tabella?
- 22. Come seleziono più valori nella stessa colonna?
- 23. Come ottimizzare ulteriormente questa tabella MySQL per una singola query
- 24. Cosa fare con più progetti a seconda della stessa fonte?
- 25. Più piccole query rispetto a una singola query lunga. Qual è più efficiente?
- 26. È più veloce modificare più colonne nella stessa query?
- 27. Copia valori da una colonna all'altra nella stessa tabella
- 28. Esecuzione di unione interna per più colonne nella stessa tabella
- 29. Come fare riferimento a progetti correlati nella stessa soluzione quando i pacchetti Nuget sono l'output richiesto
- 30. Più PHP MySQL query più semplici rispetto a una singola query più complessa,
nel primo esempio, si utilizza la vecchia sintassi di join: 'SELECT * FROM x1 AS x, y1 AS y' è molto meglio utilizzare la sintassi di join corrente: 'SELECT * FROM x1 AS x INNER JOIN y1 AS y ON .... ' –
Ti avrei dato un upvote ma bot quando usi la vecchia sintassi implicita del join nei tuoi esempi in quanto si tratta di una pratica di programmazione molto scarsa. Inoltre stai mostrando cross join che dubito che l'utente desideri e questi tipi di cross join accidentali sono uno dei motivi per cui questa sintassi è stata sostituita 18 anni fa con la sintassi esplicita del join. – HLGEM
I frammenti di codice sopra sono solo per illustrare il problema in questione. –