code_junkie

Is there something wrong with joins that don't use the JOIN keyword in SQL or MySQL?

Nov 11th, 2011
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.85 KB | None | 0 0
  1. SELECT a.someRow, b.someRow
  2. FROM tableA AS a, tableB AS b
  3. WHERE a.ID=b.ID AND b.ID= $someVar
  4.  
  5. SELECT * FROM people p, companies c
  6. WHERE p.companyID = c.id AND p.firstName = 'Daniel'
  7.  
  8. SELECT * FROM people p JOIN companies c ON p.companyID = c.id
  9. WHERE p.firstName = 'Daniel'
  10.  
  11. SET SHOWPLAN_ALL ON
  12. GO
  13.  
  14. DECLARE @TABLE_A TABLE
  15. (
  16. ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
  17. Data VARCHAR(10) NOT NULL
  18. )
  19. INSERT INTO @TABLE_A
  20. SELECT 'ABC' UNION
  21. SELECT 'DEF' UNION
  22. SELECT 'GHI' UNION
  23. SELECT 'JKL'
  24.  
  25. DECLARE @TABLE_B TABLE
  26. (
  27. ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
  28. Data VARCHAR(10) NOT NULL
  29. )
  30. INSERT INTO @TABLE_B
  31. SELECT 'ABC' UNION
  32. SELECT 'DEF' UNION
  33. SELECT 'GHI' UNION
  34. SELECT 'JKL'
  35.  
  36. SELECT A.Data, B.Data
  37. FROM
  38. @TABLE_A AS A, @TABLE_B AS B
  39. WHERE
  40. A.ID = B.ID
  41.  
  42. SELECT A.Data, B.Data
  43. FROM
  44. @TABLE_A AS A
  45. INNER JOIN @TABLE_B AS B ON A.ID = B.ID
  46.  
  47. SELECT A.Data, B.Data FROM @TABLE_A AS A, @TABLE_B AS B WHERE A.ID = B.ID
  48. |--Nested Loops(Inner Join, OUTER REFERENCES:([A].[ID]))
  49. |--Clustered Index Scan(OBJECT:(@TABLE_A AS [A]))
  50. |--Clustered Index Seek(OBJECT:(@TABLE_B AS [B]), SEEK:([B].[ID]=@TABLE_A.[ID] as [A].[ID]) ORDERED FORWARD)
  51. SELECT A.Data, B.Data FROM @TABLE_A AS A INNER JOIN @TABLE_B AS B ON A.ID = B.ID
  52. |--Nested Loops(Inner Join, OUTER REFERENCES:([A].[ID]))
  53. |--Clustered Index Scan(OBJECT:(@TABLE_A AS [A]))
  54. |--Clustered Index Seek(OBJECT:(@TABLE_B AS [B]), SEEK:([B].[ID]=@TABLE_A.[ID] as [A].[ID]) ORDERED FORWARD)
  55.  
  56. SELECT a.someRow, b.someRow
  57. FROM tableA AS a
  58. INNER JOIN tableB AS b
  59. ON a.ID = b.ID
  60. WHERE b.ID = ?
  61.  
  62. SELECT *
  63. FROM table1 AS a, table2 AS b
  64. LEFT OUTER JOIN table3 AS c ON a.column1 = c.column1
  65. WHERE a.column2 = b.column2;
  66.  
  67. SELECT *
  68. FROM table1 AS a
  69. INNER JOIN table2 AS b ON a.column2 = b.column2
  70. LEFT OUTER JOIN table3 AS c ON a.column1 = c.column1;
Add Comment
Please, Sign In to add comment